:root {
  --bg: #fdfdfc;
  --ink: #141312;
  --faint: #c9c7c2;
  --ink-10: rgba(20, 19, 18, 0.1);
  --ink-15: rgba(20, 19, 18, 0.15);
  --ink-30: rgba(20, 19, 18, 0.3);
  --ink-40: rgba(20, 19, 18, 0.4);
  --ink-50: rgba(20, 19, 18, 0.5);
  --ink-60: rgba(20, 19, 18, 0.6);
  --ink-70: rgba(20, 19, 18, 0.7);
  --radius-lg: 16px;
  --radius-full: 999px;
}

* {
  box-sizing: border-box;
}

html, body {
  height: 100%;
  margin: 0;
  overflow-x: hidden;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: 'Open Sauce One', sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* React migration bridge: the new shell owns the primary quick tools while
   the complete legacy sidebar remains available on demand during migration. */
body.react-embedded .dash-sidebar {
  display: none;
}

body.react-embedded .dash-layout {
  width: 100%;
}

body.react-embedded .dash-tuck-tab,
body.react-embedded .dash-expand-tab,
body.react-embedded .dash-backdrop {
  display: none !important;
}

body.react-embedded.react-legacy-tools-open .dash-sidebar {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 80;
  display: flex;
  width: 224px;
  box-shadow: 8px 0 24px rgba(20, 19, 18, 0.1);
}

body.react-embedded.react-legacy-tools-open .dash-collapse-btn {
  visibility: hidden;
}

/* Saved-space management now lives completely in the React sidebar. Keep the
   legacy DOM available as a compatibility data source, but do not render a
   second set of space controls inside the full-tools view. */
body.react-embedded .saved-spaces-divider,
body.react-embedded #addCanvasTabBtn,
body.react-embedded .dash-space-search,
body.react-embedded .dash-space-search-empty,
body.react-embedded .dash-saved-list {
  display: none !important;
}

a {
  color: inherit;
  text-decoration: none;
}

textarea, input, button, select {
  font-family: inherit;
  color: inherit;
}

button {
  cursor: pointer;
}

::selection {
  background: var(--ink);
  color: var(--bg);
}

.focus-ring:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.hidden {
  display: none !important;
}

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 200;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--ink);
  color: var(--bg);
  transform: translateY(-160%);
  transition: transform 0.15s ease;
}
.skip-link:focus { transform: translateY(0); }

/* ---------- Layout helpers ---------- */

.screen {
  min-height: 100vh;
}

.center-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.wordmark {
  display: block;
  text-align: center;
  font-size: 13px;
  letter-spacing: 0.2em;
  color: var(--ink-60);
  margin-bottom: 40px;
}

/* ---------- Landing / blank canvas ---------- */

.splash {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  animation: fadeOut 0.9s ease forwards;
  animation-delay: 1.5s;
}

.splash h1 {
  font-size: 22px;
  letter-spacing: 0.2em;
  font-weight: 400;
  color: var(--ink);
}

@keyframes fadeOut {
  to { opacity: 0; visibility: hidden; }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.fade-in {
  animation: fadeIn 0.5s ease forwards;
}

/* Shared top nav — used on index.html (as an overlay on the canvas) and on
   pricing/about/terms/auth/verify/reset-password as a normal in-flow bar.
   Menu items live behind a tap-to-open dropdown in the top-right corner —
   this works identically on desktop and mobile since it's click/tap
   driven, not hover-driven. (An earlier version relied on :hover to reveal
   the links, which meant they were completely unreachable on touch
   devices — this replaces that.) */
.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
}

.site-nav.overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 30;
}

/* ---- Logo / wordmark slot ---- */

.site-nav-mark {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 5px;
  border-radius: 8px;
  overflow: hidden;
}
.site-nav-mark{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.site-nav-mark:hover,.site-nav-mark:focus-visible{background:transparent!important;box-shadow:none!important}

.site-nav-mark::after {
  content: 'Beta';
  display: inline-flex;
  align-items: center;
  min-height: 17px;
  padding: 1px 6px 2px;
  border: 1px solid var(--ink-15);
  border-radius: 999px;
  color: var(--ink-50);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  font-size: 9px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-nav-mark:hover::after,
.site-nav-mark:focus-visible::after {
  color: var(--ink-70);
  border-color: var(--ink-30);
}

.site-nav-logo {
  width: 26px;
  height: 26px;
  display: block;
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAQ4CAYAAADsEGyPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAFRZSURBVHhe7d13nO1XXe//18lJIyEJEEgACb13BGlSpAgIqCjXgqBXsV+x/ixXr1dR7D7Ecq2ogFxEVEQUEEGUjnQILbRQDCVACCWBhNTfH3zPZVj5nmTOOTN79p79fD4e78fMWWvNnJm198z57s9Z37UKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYA3vGBgDgCh1XHVkdNWXf+/veHlEdPbTNjTusuqi6cHp7ILmgOrf65JSzxy8SAGCdKHAAsI5OrK465YTqahv+vC9Xmfnz1cZPtGQ+s6Hg8cnqU8Of97Xtrc6sPjq9/dj4iQAAVo0CBwC7yXWr60+5XnWDqe3qG4oUx48fRBdPRY6NRY/9vf/J8YMBAJaBAgcAq+Kw6tobChhjrjvdGsL2++CUj1Tvrt5bvac6vXr/OBgAYBEUOABYFgoYu8MF1fumYse+ose+t++d9hsBANhyChwA7IS91a2qO27I7aorjQPZVS6pzthP8eM91WfHDwAA2CwFDgC22+HVrYdixm2nU0Zgo/dWr6teO7193XRSDADAFVLgAGArHVndpvryDcWM20xHosKBurR654aCx2urN1bnjwMBABQ4ADgUJ1T32JCvUMxgm11UvX0oerzZ3h4AgAIHAAfiekNB41b+LWEJnF+9snrRlNcoeADA+nFRCsD+7JluL9lY0DhlHARL6LPVyzcUPF5fXTwOAgB2FwUOAPY5qrrzhmLG3aurjINgBX2meumGgsep04kuAMAuosABsN6uVn199bDqqx3Typo4u3rJhoLHW8cBAMDqUeAAWD+nVN9SfV11z7ET1tBZU6HjBdXfV58eBwAAy0+BA2A93GFapfGw6rZjJ/D/XFi9cCp0PFOxAwBWhwIHwO60t7rXhqLGdccBwBVS7ACAFaLAAbB7XKl60FTQeOi0vwawNRQ7AGDJKXAArL47V99XfWt17NgJbDnFDgBYQgocAKvpuOrbq++tbj92Aguj2AEAS0KBA2C13HUqanxrdczYCewoxQ4A2EEKHADL77jqO6bbUJyAAqtBsQMAFkyBA2B53W0qanyz1Rqw0i6o/q76P9Vrxk4AYGsocAAslxM2rNa49dgJrLzXToWOv50KHwDAFlHgAFgOXzkVNb5pOu4V2N0+Xj2h+uPqw2MnAHDgFDgAdtY9qt+t7jR2AGvhoupZ1R9WLxk7AYDNU+AA2Bl3qH6ruv/YAaytt0yFjv9bnTd2AgCXT4EDYLFuWf1a9fVjB8DkU9UTqz+oPjB2AgDzFDgAFuMG1eOqR1SHjZ0AMy6pnjdtSvqC6tJxAADwRQocANvrWtUvVo+ujhg7ATbp3dPtK0+qzhk7AQAFDoDtcrXqf1X/ozp67AQ4SJ+uHl/9XvWZsRMA1pkCB8DWulL1M9VPVseOnQBb5Ozqt6d9Oj43dgLAOlLgANg695mWj19v7ADYJh+vfqP6EyevALDuFDgADt1Vp/9FfdTYAbAgH5lOaHpCdcHYCQDrYO/YAMABeVT13OquYwfAAh1XPbj6zurc6i3TKSwAsDas4AA4ONep/rJ6wNgBsATeV/1S9dTq4rETAHYjKzgADsye6serZ1a3GDsBlsRVq4dV31p9onp7dek4CAB2Eys4ADbvNtUTqzuNHQBL7m3VL1T/qNABwG512NgAwGUcNW3e93rFDWBF3ar6h+oN1UPHTgDYDazgALh896yeXN1w7ABYYa+p/nf1grEDAFaVFRwA8/ZUj61eorgB7EJ3rp4/5XpjJwCsIpuMAlzW8dU/Vd9tpRuwy92o+r7qgurV9ucAYJW5cAf4Ujernjtd9AOsk7dUj65eN3YAwCqwggPgix5a/Vt18tgBsAZOrr6nunr18mlVBwCsDHtwAHzBY6t/ro4dOwDWyGHVD1enVQ8bOwFgmblFBVh3x1ZPd2wiwKznVj9QfXDsAIBl4xYVYJ3daDol5e5jBwBV3XTahPSz1WttQgrAMrOCA1hXD6z+bjoxBYAr9qbqu6a3ALB07MEBrKNfrJ6nuAFwQG4/nbDyO/YrAmAZWcEBrJM91ZOr7xg7ADggH5z25nju2AEAO8UKDmBdKG4AbJ3rVM+p/r661tgJADvBCg5gHeypnlZ969gBwCH7TPWD0+9ZANgxVnAAu53iBsD2Or660tgIAItmBQewmyluAGy/907HyV48dgDAIilwALvZk6v/PjbCFju/Orc6Z3r76eqCKZ+/gvcvqo6sjqgOP4gcX111ylXGLwwW5FHVX4+NALBoChzAbqW4wcH6ePW+6iPVGdNpEWdUH5oKGBvz6fGDd9i+Qse+t1fb8OeNhZDDp00iT6m+bPwkcADeXt1qbASAnaDAAexGT60eOTZCdeZUqPjQVLjYlzOmnD5+wBo4rLr2VPDYV/QY316r2jt+IFT/rfqHsREAdoICB7DbPKX69rGRtXBO9eYNqy0+OLz9r/ED2LS91Y2qm017LdxsQ04eB7M2Tq1uPzYCwE5R4AB2CxuKro/PTcvi37ohb5sKGSzelatbzhQ+buJkjV3vodVzx0YA2CkKHMBu8TvVT4yNrLQLq3cOhYy3Tic2XDoOZunsmYocdxhyjXEgK+k11V3GRgDYSQocwG7wLdXTx0ZWzjnVK6uXVS+tXj2dNMLu8mUzRY/rj4NYever/mNsBICdpMABrLo7VP9ZHTV2sPQ+Ub18Kma8tHpjdfE4iLVwjeqrqvtMb28xDmCpvLS699gIADtNgQNYZVebblm41tjBUrq0ev10z/5zq9e51YT9OGkqduzLTccB7Ki7TLeoAMBSUeAAVtXe6sXVPcYOlspnqn+bChrPqT4+DoBNuGZ13w2rPG48DmBhnlc9eGwEAAAO3v+Z/vdfli9vnzZ9ve/4oMEWuU71qOqJ0xHA43NQti93GB8MAADg4P33mYtu2bmcX/1r9cPV9cYHC7bZnupuU1Ht/TPPT9m6PHOcfAAA4ODdeTpZY7zwlsXnzdVjquPGBwl20J2qX6/ePfOclUPLzcfJBgAADs41qo/NXHTL4vK56snT/5jDsrtt9cvV22aey3Jgedo4uQAAwME5onr1zEW3LCZvmW5BOWF8YGBF3KT6+epNM89vufxcVN1wnFAAAODg/PnMRbdsf/7aSTXsQtevfmY66nR8zstl85fjBAIAAAfn22YuuGX78pnqN6prjQ8E7ELXqX68ekV1yczPw7rn89Up46QBAAAH7mrVJ2YuumXr86Hqp6srjw8CrIkbVr9bfXrm52Nd80fjJAEAAAfnqTMX3LK1eVv1XdM+J8AXinw/Ur1n5udlnXJedc1xcgAAgAN3v5kLbtm6vKR66DjpwP+zp/ra6t9nfn7WIb8zTggAAHDgrlR9cOaCWw49b6/uPU44cLluU/3FtKph/JnajTm3OnGcBAAA4MD93swFtxxazqy+tzpsnGxg006sfm7as2b8GdtN+dXxGwcAAA7czaqLZy645eByXvVr1bHjRAMH7YjqEdWrZ37mVj2fqk4Yv2EAAODAPXPmglsOLn9TXXucYGBL3bV6enXhzM/gKubnx28QAAA4cHeaudiWA89rp7kEFuc61a+v+NHWZ1ntBQAAW+NlMxfcsvl8rvrhcVKBhTq2+sXqnJmf0WXPT47fDAAAcOC+euZiWzafN1Q3GScV2DHXqP6wumDm53UZ85Hq6PGbAAAADtybZy645YpzUfW46vBxQoGlcKNpj45LZn5+lymPGb9wAADgwH3NzMW2XHFOr75inExgKd2+evHMz/Ey5L+qI8cvGAAAOHD/OnPBLZefP62OGScSWHoPrN408zO9k/me8YsEAAAO3A1nLrZl//lo9aBxEoGVsqd6ZPW+mZ/xRef0au/4BQIAAAfuT2YuuGU+b6hOGicQWFlHVj82Hc86/rwvKo8cvygAAODAHVd9duaCWy6b5zrhAHat46pf3YHfh6dVh41fDAAAcOB+euaCWy6b35qWtAO728nVn02nI42/B7YjDx+/AAAA4MAdVp0xc8EtX8xFlo/DWrpp9cyZ3wlbmTeNfykAAHBwHjRzwS1fzKere4+TBqyV+1Tvn/n9sBV5yPiXAQAAB+cvZy645Qt5X3XjccKAtXSl6jerC2d+VxxsXj3+JQAAwME7e+aiW+qN1VXHyQLW3m2m3w/j74yDyf3GTw4AABycB85ccEu9q7raOFkAk8OqnzjE01ZeMn5SAADg4Lk95bJ5b3WtcaIAZlyv+o+Z3yObyZ3HTwYAABycvW5PuUw+XJ0yThTAFXhk9fGZ3yn7y7+MnwAAADh4bk/50lxQ3XacJIBNumr1lJnfLXO53fjBAADAwfuDmYvudc4PjhMEcBCu6EjZZ44fAAAAHJpTZy681zV/P04OwCG4UvXb1UUzv29uPg4GAAAO3tVmLrrXNe+ujhknCGAL3L5684bfN08bBwAAAIfmYTMv9Nc1dxonB2AL7a1+sjq3uuHYCQAAHJrfnXmhv4550jgxANvkqmMDAABw6N4482J/3fKZ6urjxAAAAACr4crVxTMv+NctPzJODAAAALA67j/zYn/d8qHq8HFiAACAQ3PY2ACwjW41Nqyhx0/HNwIAAFtIgQNYpHUvcJxTPWFsBAAADp0CB7BItx4b1swfT0UOAABgi+0ZGwC20bnVsWPjGrludcbYCAAAHDorOIBFuc6aFzdep7gBAADbR4EDWJR1vz3l6WMDAACwdRQ4gEW54diwZv5ubAAAALaOAgewKNceG9bIW9yeAgAA20uBA1iUdS5wvGxsAAAAtpYCB7Ao1xob1ogCBwAAbDMFDmBR1nkFx4vHBgAAYGspcACLsq4FjvdVZ46NAADA1lLgABbh8OrqY+OaOHVsAAAAtp4CB7AIVxsb1sj7xgYAAGDrKXAAi3ClsWGNvH9sAAAAtp4CB7AI61zgsIIDAAAWQIEDWIRjxoY18tGxAQAA2HoKHMAirPMKjnPGBgAAYOspcACLoMABAABsKwUOYBEUOAAAgG2lwAEsggIHAACwrRQ4gEVY5981l4wNAADA1lvnFx3A4nx+bFgjJ48NAADA1lPgABZhnQscJ40NAADA1lPgABbh/LFhjVxjbAAAALaeAgewCFZwAAAA20qBA1iEdV7BocABAAALoMABLIIVHAAAwLZS4AAWwQoOAABgWylwAItgBQcAALCtFDiARfjU2LBG7jg2AAAAW0+BA1iEc6oLxsY1cZ3q1mMjAACwtRQ4gEX50NiwRh46NgAAAFtLgQNYlI+ODWtEgQMAALaZAgewKGeODWvk7tUJYyMAALB1FDiARVnnAsee6mvHRgAAYOsocACLss63qOQ2FQAA2F4KHMCirPMKjqqvn05UAQAAtoECB7Ao676C4+jqsWMjAAAAsFpuV1265rm4utk4MQAAAMDqOKq6aOZF/7rlH8eJAQAAAFbLO2de8K9j7jRODAAAcGjswQEs0tvGhjX1u2MDAABwaBQ4gEVS4PiCezg2FgAAtpYCB7BIChxf9OeOjQUAgK2jwAEskgLHF12zekF1/NgBAAAALLe9TlK5TF4wzQsAAACwQl4/8yJ/3fPEcZIAAIAD438NgUW7eXW3sXHN3WEqdLxk7AAAADZHgQNYtKOrbx0b6T7V+6tTxw4AAABg+Zw4c4uGfCGXVL9U7RknDQAAAFg+b555cS9fzHOrK4+TBgAA7J9jYoGd8NKxgS/x4Oq11Y3HDgAAYJ4CB7ATbKZ5xW4+nThz/7EDAAAAWA724dh8Lqp+YpxAAAAAYDm8bubFvOw/z6+uN04iAADwBY6JBXbK8dUDxkb260bV91bnVa+Zih4AAADADrvuzCoF2VzeWN1mnFAAAABgZ7xy5sW7bC4XVr9eHTVOKgAAALBYPzLzwl0OLKdX9xwnFgAAAFica1aXzLxolwPPc6o7jBMMAAAALMaLZl6sy8HnedWdxkkGAAAAttejZl6ky6HnBdVdx8kGAAAAtsfh1ZkzL9Bla/Lv1b3GSQcAgN1m79gAsGCXTCeB3HfsYEvcoPqu6mungse7qgvGQQAAAMChu1p1/szqA9n6nFP9WfXl44MAAAAAHLonzLwYl+3N66rvra48PhgAAADAwbnlzAtwWUw+N63qcJsQAAAAbIEXzLz4lsXmY9WfVve3TxMAAAAcnLvPvOCWnctZ1V9UD5xOuwEAAAA26e9nXmjLzufs6knVQ6ojxgcNAAB22p6xAWCHXX86ytSL6OV1bvXi6Zaif6veMQ4AAAAA6vEzKwhkefNf060s31JdZXwwAQBgEazgAJbR8dUZ01tWyyXVGzas7nhFdeE4CAAAtpoCB7CsfnxaycFqO696XfWq6j+nnDkOAgCAQ6XAASyrw6vXVrcfO1h5H9hQ7HhV9UarPAAAOFQKHMAyu2V1qiNKd73PV2+dbm3Zl1OndgAA2BQFDmDZ/VL1C2Mju95F1WlD0eNN0wkuAABwGQocwCp4S3XrsZG19O6h6PGO6oPjIAAA1o8CB7AKbj9tVLl37IBpVce7pmLHOzfkHdX542AAAHYnBQ5gVTyu+vmxES7HpdNxwxsLHvveP2McDADAalPgAFbJG6o7jI1wED43rfoYCx+nTUfbAgCwYhQ4gFVy3elI0auNHbBFLq0+tJ/bXc6Y+gEAWEIKHMCquVf1ouqwsQO22XnVe6vTp7xnw9sPTCe/AACwQxQ4gFX0g9Ufj42wgy6q/msoemx8a7NTAIBtpsABrKrfrX5sbIQldGn1kZmix3umfHr8AAAADpwCB7DK/rD6obERVswnNxQ83j3lndXbpyNwAQDYBAUOYNU9qfrOsRF2iTM3nPayMe+tLh4HAwCsMwUOYDd4RvXwsRF2uY1H275nw58/Ng4EAFgHChzAbnB49dzqAWMHrKFPbSh2bFz98a7q8+NgAIDdQoED2C2Orl5YfeXYAfw//zUVO14+7fHx1uod4yAAgFWkwAHsJsdVL6tuN3YA+/X5qcjxtqngse/t+6YTYAAAVoICB7DbnFi9srrp2AEckM9N+3u8dSh8nDEOBABYBgocwG507epV1SljB3DIPrPh9pZ9RY+3Tie+AADsGAUOYLe64XS7yrXHDmBbfKJ6c3XqlDdPhY8LxoEAANtBgQPYzU6pXlDdfOwAFuKi6fSWjUWPU6sPjwMBAA6VAgew2125+sfq/mMHsGPO2lDs2Pf2bVZ7AACHQoEDWAeHVY+vfnTsAJbGRdMRthuLHqdWHxkHLsAJ1VHT8dNHDe8fUR0z075x7J7p+7lwP2/n2i6cCjznTvucnDPlc+MXBwDMU+AA1sn3Vk8YG4Gl9qnqddPGwa+eTkk6exw0FRhOqI6f3m58//j9tM+NWUafmoodGwsfG9//VPXJ6mNTPjq9tfErAGtFgQNYN/eu/nmJX8gAV+zsKRdOhY1rTLejcVmf2FDs+PhMEeRD1XuncQCw0hQ4gHV04+p501sAvrAC5PTqPRve7nt/J24TAoADpsABrKvjp5Uc9x47APgS580UP9415YPjYADYKQocwDrbW/159V1jBwCb8pnqHdXbq9M25L3VJeNgANhOChwA9YjqD6urjR0AHLS3ToWPt09FkNOmE3IAYFsocAB8wcnVU6v7jx0AbJmLpoLH66fTcV5fvan6/DgQAA6UAgfAl3p09btOWQFYqDdVb9hQ+HjNOAAArogCB8BlnVI9pfqqsQOAhbiwetuGVR6vm25vuWAcCAD7KHAA7N8PVb9VHTN2ALAjXlG9dHr7smmTUwAoBQ6AK3T96unVXcYOAHbUJdNGpi+b8pLqzHEQAOtDgQPgih1W/Xj1K9XRYycAS+O91cs3FD3eOQ4AYPdS4ADYvJtVf1vdbuwAYCmdWb2w+rfqBVZ4AOxuChwAB2Zv9e3VL1XXHTsBWGqnTcWOF1Yvqs4dBwCwuhQ4AA7OkdUPVj9XnTR2ArD0LqpevWGFx6unNgBWlAIHwKE5pvr/qp+sjh87AVgZ51Qv3lDwOG0cAMByU+AA2BpXq362eoyNSAF2hY9W/1L90xQAlpwCB8DWulb12OrR1eFjJwAr6XPTJqX/VP1zdfY4AICdp8ABsD1uUP1a9S1+1wLsKhdXr6yeVf1D9YFxAAA7w0U3wPa6TfXr1UPGDgB2hbdNxY5/ql47dgKwOAocAItxw+rHq++srjx2ArArfHi6heVZ1X9UF44DANg+ChwAi3Vc9d3TZqQ3GjsB2DU+XT2zetpU7LhkHADA1lLgANgZe6bbVn60uv/YCcCu8tHq76Zix6vGTgC2hgIHwM672XT7yrdXx4ydAOwq76uePhU73jp2AnDwFDgAlsfx1fdNt69cb+wEYNd5a/U31V87jQXg0ClwACyfw6qvr36k+qqxE4Bd6WXVE6dbWT43dgJwxRQ4AJbbjadbVx5pU1KAtXDuVOR4YvWKsROA/VPgAFgdd60eVX1zdY2xE4Bd513Vk6onV2eOnQB8KQUOgNVzePWAqdjx9TYmBdj1Lq6eP63q+OfqwnEAAAocAKvu2Oobp1tY7l/tHQcAsKt8onpq9ZfVW8ZOgHWmwAGwe5xUPWJa2XGnsROAXefV1R9Oe3ZcMHYCrBsFDoDd6cbVd1TfZnNSgF3v49VfVH9SnTF2AqwLBQ6A3e/W1YOqr6nuUR05DgBgV7i4eva0quPfx06A3U6BA2C9HFvddyp2PKi6wTgAgF3hHdUfVX9VnTN2AuxGChwA6+2mG1Z33Lu60jgAgJV2bvWU6g+qd46dALuJAgcA+xxVfdWGgsfNxgEArLQXTas6njXdzgKwqyhwALA/16zuWX3llNtXh4+DAFg5H6h+ezpq9vyxE2BVKXAAsFlXqu4ybVT6ldXdqhPGQQCsjI9Xvzet6vj02AmwahQ4ADhYe6pbTcWOfUUPm5YCrJ5zpiNmH199dOwEWBUKHABspZOG21ruUB0xDgJgKX2+elL1W9X7xk6AZafAAcB2Orq6c3XHabXH7apbT+0ALKeLq7+rfr16y9gJsKwUOABYtMOqG0/FjttOuV11vXEgADvuWdX/qt4+dgAsGwUOAJbFcVOhY2Ph4zbVseNAABbq0urvq1+o3jl2AiwLBQ4Altme6kYbVnnse3t9/4YBLNwl1d9Uj63eM3YC7DQXhwCsomM3FDweXD1kuvUFgO13cfWUqdDxX2MnwE5xMQjAKvps9crqE1OBw79nAIuzt/quaRXHn1ZfNg4A2Al7xwYAWBE/WD1ZcQNgx+yt7lT90HRM+OunAjTAjlDgAGAV/cZ0fCEAO+/w6i5ToePI6jXVheMggO1mDw4AVslh033fjxw7AFgaH65+bvp9fenYCbBdFDgAWBVHVf9Yfc3YAcBSOrX60eolYwfAdlDgAGAVHFc9v7rb2AHA0ntW9dPVu8cOgK1kDw4Alt01q5dWXz52ALASbl79QHXV6lXV58cBAFtBgQOAZXajqbhx07EDgJWyd1qF933V+dWrxwEAh8otKgAsq9tX/15dbewAYOW9p/rJ6p/GDoCDpcABwDK6SfW66vixA4Bd5XnTqo4Pjh0AB8otKgAsm6tWL69OHjsA2HVuMu3P8Vm3rQCHygoOAJbJEdNxgk5LAVg/r6u+q3rr2AGwGYeNDQCwg56suAGwtu5UvaX6jbEDYDMUOABYFj9ZfdvYCMDa+Znq9OqeYwfA5XGLCgDL4KHVP/t3aamdVb24etGUD1e3nnKrDbF3CrCVnlT9f9Unxw6AkQtJAHbaLarXV1caO9hRn5r2Q/mPqbDx5nHAfly1ukN1u+q2U25VHTUOBNikT1S3rD42dgBspMABwE66evXG6jpjBzvijdVzq3+ZTjO4ZBxwkPZWN5uKHRsLHx739XJO9Y7q9tOGwrBZL6vuNTYCjBQ4ANgpR03Hwd5p7GBhzq1eOBU1nl19dBywza4xbSq7L19RHTMOYlf5g+rnqvtWD66+prreOAgGd65eOzYCjBQ4ANgpz6gePjay7V5ZvaZ6XvWCsXOH7Z1WduwreNy1uvE4iJV2cXXz6j0b2m5dPWjK/Ta0Q9Vzqq8dGwHmKHAAsBN+ufrfYyPb5o3V06u/qc4YO5fcicMqjztXx46DWCmX94L12KnIsW91x3XHAayd2x3AHkAAALBQD68ulW3Pu6rHVjcdH4AVt7e6R/W4aSXKxTPfuyx/7j0+sPtx2+oXqjfMfA7Z/fn78QkBcHms4ABgka41bTJ4/NjBlrioemb1f6b9TdbBVaZbGx445VrjAJbS26dbUy4dOy7Hl00F0odV96wOHwewq1wyncD0jrEDAACWwYtn/odODj1nTrf9XHOc8DV0m+onq3+rzp+ZK1mefP/44B2AE6pvr/5h2ix3/Nyy+vmr8UEHAIBl8T9mLmDl0HL69CLRkZvzjq3+W/W06tMz8yc7m49t4Wqur6ueMvN3yOrmBuODDAAAy+CG1XkzF7BycHlb9ahpPwo258hp08o/n15Yj3MqO5OfHR+oQ3RC9QPV62b+Llmd/On4wAIAwDI4rHr9zAWsHHheV32jPbQO2WHVvarfqz4wM8+yuJy5jXtp3Kb6/eoTM3+vLG8uqE4eH0wAAFgG/3vmAlYOLKdPt1qwPe5T/e30wmqce9n+fNv4gGyxI6tvrl7g1J2VyOPHBxAAAJbB9bxoPKR8qvope2wszEnVz1Xvn3ksZPvyxvGB2EanVL/oMV7anFudOD5oAACwDJ4xcwErV5yLqj92ob9jDqseUj3b//gvLF85PgjbbE/11dXTnbazVPmV8YECAIBlcNeZi1e54ry1ut04meyYU6rHVR+Zeaxk6/KMceIX6CrVD1enznxdsrh8atokFgAAls4bZi5gZf+5oPolt6MsrSOqx0ybYo6PnRx6LqquOk76DrjjtHrqUzNfo2xv/tf4YAAAwDJ4xMzFq+w/b7JqY2UcM+3T8cmZx1EOLT84TvYOOqp6ZPWi6pKZr1W2NmdVx44PAgAA7LQjqg/NXMDKfP7PNh6Tyfa5SvXr1WdnHlM5uLxknOQlcbPqL+zVsa358XHSAQBgGfzMzMWrXDbnOvp1Vzip+iOnBW1JLqlOHid4iVxj2gTz7JmvXQ4+Z7o1DwCAZXSki/9N5V3VTcbJY6XdrHrVzGMtB5afGCd2CR0zbUr63pmvXw483z9OMAAALIMfmLl4lS/Ni6vjxoljVzis+jG3rRxSXjNO6hI7rPqm6Wsevw/ZXM6o9o4TCwAAO22P/9G8wvydpdhr4frT5pTj4y+byynjhK6Ae1XPtiHpAefbx4kEAIBl8OCZi1f5Yn57nDB2ve+vPjPzXJDLzyofF3qz6s9tSLqpnDatggEAgKXzbzMXsPKF/9FdpuMvWaxT/GwccP5znMQVtG9D0k/MfH/yhdhkGQCApXSzmYtX+UK+c5ws1tLPzzw3ZD4XVkePE7iijqke4/a9y+TUcaIAAGBZ/OXMBazUz40TxVr7xurzM88TuWweME7eirMh6ZfmweMEAQDAMji6Om/mAnbd83vjREF1F0cpbyq/Nk7cLrLuG5Ku0kk5AACsmW+buYBd9zxnnCTY4IbV6TPPG/liXjFO2i504zXdkPSe40QAAMCyePbMBew657TqyuMkweCq1atmnj/yheymfTiuyLWrP5u+53Eedlv+bfzmAQBgWVy5umDmInZdc051o3GS4HK8YOZ5JF/I/cfJ2uVuWj19l9+68hXjNw0AAMviu2cuYNc1l1QPGScIrsDx1btmnk+yvpv03r563sx8rHr+efxGAQBgmfzbzEXsuuYPxsmBTbq+jUdn87RxotbMvXfZbUw3H79BAABYFift8qXUB5L3r9F+AWyPu7nd6zJ58zhJa+prq7fMzM8q5enjNwUAAMvku2YuYtc1XzlODhwEJxJ9ac6v9o6TtKYOqx5VvXdmnpY9F08nBwEAwNJ66syF7Drmj8aJgUPwKzPPsXXOLcYJWnNHVD9UnTkzV8uaJ47fBAAALJuPzlzIrlveXx07TgwcojfPPNfWNd80Tg41/d75uepTM3O2TLmgus74xQMAwDK55cyF7DrmW8aJgS3wwJnn2rrml8bJ4UtctfrN6nMzc7cMscINAICl98MzF7LrltPGSYEt9MKZ59w65h/GiWHWtas/rS6cmcOdynnVyeMXCgAAy+ZZMxez65ZvHicFttBtZp5z65h3jhPD5bpR9TdLcsLVb49fHAAALJs91bkzF7PrFKs3WIS/nnnurVs+P04Km3L76l9m5nNRObc6cfyiAABg2dx55mJ23fJd46TANrjBtEnj+Pxbt3ihfPDuW71nZk63O/ZOAQBgJfzIzMXsOuXT1VHjpMA2+d2Z5+C65VbjpHBAjqx+ZoEr7z7ldClgpxw2NgDAFbjN2LBmnmzZPAv0x2PDGrrm2MABuWA6aeWm1d+Nndvg16vPjo0AALCMXjXzP3brlBuPEwLbbCduMVimfNs4IRySe1XvmJnnrchZ1dHjXwiwKFZwAHCg1nkFx0unF5uwSP8yNqwZKzi21kurW1c/WZ0zdh6iX67OHxsBFkWBA4ADccPqmLFxjfzN2AAL8LyxYc0ocGy9i6rfmW5bedrYeZA+WP3J2AgAAMvq62eWJK9Trj1OCCzAUdP/io/Px3XJU8YJYcvdvXrbzNwfSL5n/KQAi2YFBwAHYp1vT3lz9eGxERbg89V/jI1r5CpjA1vuldVtqx+bToo6UO+tnjQ2AiyaAgcAB2KdCxzPHRtggdZ5Hw6bVi7GxdXvVzep/mpalbFZ/3v6eAAAWBmnzSxLXpfcfZwMWKDrzDwn1yUvGyeDhbh7derM4zHmNP9pCgDAKrpw5uJ2HXKBC3iWwLkzz811yGvHiWBhDqv+R3X2zOOyL98wfhAAACy7q85c2K5LXj1OBuyAD8w8N9chbxkngoU7sfqL6pLhsTl1HAiwk/xvFACbda2xYY28YWyAHXDW2LAm7MGx8z4xnZJy1+H34U9veB9gxylwALBZ1xwb1sjrxwbYAZ8YG9aEAsfyeE11x+r7q3+qnj8OANhJChwAbNY6Fzis4GAZrOsKjiuNDey4J1QPGxsBdpoCBwCbtc4FjtPGBtgBVnAAwOVQ4ABgs9Z1D45PVOeNjbADPj42rIm9YwMAzFHgAGCz1nUFxxljA+yQs8eGNXHB2AAAcxQ4ANisq44Na+K/xgbYIeeODWvCCioANkWBA4DNWteN/qzgYFlceWxYE+ePDQAwR4EDgM1a1wLHum7syPI5YWxYEwocAGyKAgcAm7WuBQ7L41kWx48Na0KBA4BNUeAAYLMUOGBnrWuBw88gAJuiwAHAZq1rgcP/HrMs1rXA4WcQgE1R4ABgs9a1wOF/j1kWChwAcDkUOADYrKPHhjVx4dgAO2RdNxn95NgAAHMUOADYrOPGhjVx4tgAO+SUsWFNfGRsAIA5ChwAcPmuPjbADjimuv7YuCYUOADYFAUOADZrXfeiuObYADvgdmPDGlHgAGBTFDiAZXSfsYGl8PmxYU2cNDbADrjN2LBGFDgA2BQFDmDZnFj9S/W+6oFjJztqXU8yuMbYADtAgQMAroACB7Bs/td0Wsf1q3+t/nmN7ztfNlZwwM5R4AAAgBVycnVBdemQ86rHrvExpcviHTOPzTrEEZUsg0/OPDfXIY5pBgBgJf3xzMXtxryv+vrxg1iYU2cek3XJnnEyYIGuPfOcXJe8d5wMANgft6gAy+I61feNjYPrV8+abl250djJtlvXPTiq7jg2wALde2xYI6ePDQCwPwocwLJ4XLV3bNyPB1Zvr37VbSsLta57cFR9zdgAC/SNY8MaecvYAAAAy+yG1cUzS5M3k/+qHj5+QrbFP8/M/7rkP8fJgAU5svrczHNyXfLocUIAYH+s4ACWwa8ewu+jU6pnVP9e3WzsZEudOTaskbtUJ4yNsAAPrq40Nq4RKzgA2LSDfUEBsFVuXn3r2HgQ7jtdCP9mdczYyZZY5wLHnumFJizaOt+eUvWmsQEA9keBA9hpvzE2HIIjqp+u3rVFRRO+1DoXOLIPBztgb/WwsXGNnO6YWAAAVsVtZ+633sq8pLrl+Jdy0L5xZo7XKR9zXCwL9oCZ5+E65VnjhADA5bGCA9hJvzU2bLF7VadWj6+uPHZywNZ9Bcc1qjuNjbCNrujo7N3O/hsAAKyEr5j537rtzEeqR41fBAfkhjPzum550jgpsE1uUl0y8xxcp3ztOCkAALCMXjpzMbuIvLa69/jFsClHzMznuuXi6tbjxMA2eMrM82+dckl17DgpAACwbL565mJ20fk3txsclM/MzOW65V/HSYEtdr1pc83xubdOed04KQAAsIxeM3Mxu1N5RnXT8Qtkv940M4frmPuMEwNb6E9mnnPrlt8eJwUAAJbN181cyO50Lqr+ojpl/GK5jKfOzN865i026mabXL36/Mxzbt3ykHFiAABg2Zw2cyG7LDm/+p3qxPGL5v/52Zl5W9d8xzg5sAXWfe+NS+2/AQDAKvjmmQvZZcxnql9wgT3ra2fma11zdnX9cYLgENxv5nm2jnnNODEAALBMDqtOn7mQXeZ8rPqR6sjxm1ljjor90ryrOn6cJDgIV6o+OPMcW8f85jg5AACwTP77zEXsquT909dvz4UvOH9mjtY5L672jpMEB+j3Zp5b65p7jpMDAADLYm91xsxF7KrlbdXDxm9uDb12Zm7WPU8cJwkOwO2nfSfG59U65qPVnnGCAABgWXz/zEXsKue11b3Hb3KNPGlmTqR+cpwo2ITDp+Lp+Hxa1/zOOEEAALAsjqjOnLmI3Q15/vQ/r+vmB2fmQr7wP/APHScLrsATZ55L65yvGCcIAACWxY/OXMDuplxS/V110/Eb38VuMTMP8oV8tvqaccJgP35i5jm0zjljnCAAAFgWR1dnzVzE7sZcVP15de1xEnapdXlcDyYXTafvwOX56urimefPOudXx0kCAIBl8T9nLmB3e86v/qK62TgZu8zfz3zv8qV5gtNV2I/bVufOPGfWPbcZJwoAAJbBsdWnZi5g1yWXVM+u7jVOzC7xQzPfs1w2/1GdME4ea+2a1UdmnivrntPHiQIAgGXx2JkL2HXNq6v/Vh02TtIKu9XM9ynzeWd1w3ECWUtXqk6deY7IF/ZrAgCApXOC5dezOX1a+XClccJWlH04Np+zq3uME8haOa565cxzQ+ozu+j3IgAAu8xvzlzAyhdzVvXL1YnjxK2YZ8x8b7L/XDhtonjUOJHsetes3jrznJAv5DfHCQMAgGVwYnXezAWsXDbnVX9W3XicxBXxnTPfk1xxTq/uOk4mu9aNpuNPx+eBfCEXVieNkwYAAMvg92cuYOXyc0n1j9Xdx8lccsdVn5/5fuSKc0n1x9McsnvdqfrEzOMvX8xTxkkDAIBlcJ3qgpkLWNl8Xll9Q7VnnNwl9U8z34NsPh+uHjBOKrvC/a1m21RuO04cAAAsgyfMXLzKweXd1Q+swH4Nj5j52uXA86/VbcbJZSUdVv1iddHM4yxfmheOkwcAAMvghi7otyUfm14sLeuGpFeqPjfzdcuB55Lq71Z4TxbqlOplM4+tzMdeNAAALKWnzFy8ytblvOpp1X2X8PaVv535euXgc1H1l9WXjRPNUntY9amZx1Pm83fjBAIAwDK4eXXxzAWsbE/eW/38Er0A/oaZr1EOPedXv1ddfZxwlsrR1Z/PPH6y/1xQXW+cSAAAWAZ/P3MBK9ufi6t/qR5eHT4+KAt0eHXmzNcnW5NzqsdVx48Tz467XfWOmcdMLj+/NU4kAAAsg9vOXLzK4vOx6neqm40P0IL83MzXJFubT1d/ZDPSpXD8tLrGqVEHnrMV6wAAWFbPnrmAlZ3Nf1bfXV15fLC20dWqz858LbI9eWX17dPtESzO4dWPVp+YeUxkc/mhcVIBAGAZfMXMxassT86dNqu8+/jAbZM/nvkaZHvzierx1U3GB4Mt93VuRznkvLvaO04sAAAsgxfOXMDKcua06ie3ecPKG8/8vbK4vKh6dHXC+MBwSG5RvXxmvuXAcskCi60AAHBA7jlzASvLnwuqZ1YP3qb/Sf3nmb9TFpsLps1nH11ddXyA2LQ7TT8rTojamjx+nGAAAFgWr5m5gJXVygerX9ni4xrvNfP3yM7mhdO+B9ceHywuY890K8rLZuZRDj7vqY4cJxsAAJbBg2YuYGW18+rqp6rrjw/2QXjxzOeXnc8l1auqn9nmW5VW0RHTxrxvn5k3ObRcXN1xnHAAAFgWp85cxMruyRur/3UIG1fecnoxPX5eWZ5cPBW1HlvdpTpsfBDXxPHV/6w+PDNHsjV53DjpAACwLL5h5gJWdm/eVv1SddvxiXAF/nLmc8ny5uPVX1ePWoPVHYdNq9D+2tHG255Tp6N1AWAh9owNAFfgtOrmYyNr4T3VM6p/qF43dg6uUb2/OmbsYOldWr21ekn10uo/puNoV92XV99WPbK65tjJljtnWh102tgBAADL4BEz/0Mn65kPVU+svqW6yvhEmfz8zMfJauYd1Z+tYHHg2tOeI2+d+Z5k+3JRde/xwQCA7WYFB7BZe6t3VTccO1h7l0wrOp4/5VXTHg9HVe91eseudMa0h8e+vK46bxy0A/ZMx7s+ZDoK+U6udXbEo6snjY0AsN38ow9s1qOnfRXginx6uq3hX6c9Dp46DmDXuXhaJbGx6LHvRJLtdnz1wKmg8TXVyeMAFuq3q58eGwFgERQ4gM04Yvqf+OuMHbAJ51THjY3sep+t3lK9edpscl/OHQcehFtOBY2HVF85/Y5i5z2n+roFFbYA4DIUOIDNuHr1t9V9xw6AA/SB6k1T4eMN061vbx8HbXDEtEHo3TfEbU/L53XVvZbkViUA1pQCB3Agvq363eqksQPgEFxcvW/azPQDU9tVqxtVt6uOHsazXD5Y3aE6a+wAgEVS4AAO1AnVb1Xf63cIwNr7THVXx8ECsAy8OAEO1l2nY0JvMXYAsBYuru5XvWTsAICdsHdsANikD1ZPmDYMtMkfwPr5nupZYyMA7BQrOICtcL2p2PGAsQOAXem3qp8ZGwFgJylwAFvp4dUfOOEAYFf7h+q/jY0AsNPcogJspdOqP5vev+fQB8Dqe071zdUlYwcA7DQFDmCrXVj9R/Xk6prVrccBAKykv6oeMW0uCgBL57CxAWCLfGC6EL5r9eqxE4CV8mvVd1q5AcAyswcHsCiPqH6juu7YAcDSurT6keoPxw4AWDZuUQEW5a3Vn1bnVXepjhwHALBULqoeVT1x7ACAZaTAASzSRdXLqr+srlbd3koygKV0XvV11T+NHQCwrLywAHbSzab7ur/B7yOApfGp6oHVa8YOAFhmXlAAy+AO1a9UDx47AFioj1T3rd4xdgDAslPgAJbJXavfru4xdgCw7U6v7lOdMXYAwCpQ4ACW0X2qX63uNnYAsG0urd5fvXnIexwPC8AqUOAAltmDp1tX7jB2ALAw500nYW0serxp2qsDAJaGAgew7PZU31j9cnXLsROAHfPhmdUep00nZgHAwilwAKvisOm0lf9Z3WnsBGApXDgVOcbCx0fGgQCw1RQ4gFV0v6nQcf+xA4Cl9OnqddWrq1dVr6jOHgcBwKFQ4ABW2R2qn5tuYTls7ARgqb2r+s8pr6zeZjNTAA6FAgewG9y4+pnqO6ojx04AVsI50wqPfQWP/5xWfgDApihwALvJtaqfqL6/Om7sBGClXFq9Y1jlcdrUDgCXocAB7EYnVI+pfrS6xtgJwMo6q3p+9S/Vv9rHA4CNFDiA3eyo6hHVD1dfPnYCsNIuqV5bPW8qeLzO6g6A9abAAayLu02rOr6pOmLsBGDlnTWt6nie1R0A60mBA1g3J1U/MO3Tce2xE4BdYd/qjn+ZCh5WdwCsAQUOYF0dPh0v+8PVPcZOAHaVj2/Yu+P5VncA7E4KHAB1m+pHqkdWVxo7AdhVLq7+vXpq9czqs+MAAFaTAgfAF50wFTkeXd1x7ARg1/lc9ayp2PGCqfgBwIpS4ACYd5vqe6eCx9XGTgB2nY9VT5+KHa8dOwFYfgocAJfvyOobqu+u7lcdNg4AYNd511ToeEr1gbETgOWkwAGweadMt698V3W9sROAXemVU7Hj6dUnx04AlocCB8CB21Pdfyp2fEN11DgAgF3ngupvq8dXbxo7Adh5ChwAh+aE6bjZR1T3rfaOAwDYdV5V/UH1jOrCsROAnaHAAbB1Tqq+eSp23M3vWIBd7yPVn0w5a+wEYLFcfANsj1OmQscjqtuPnQDsKm5fAVgCChwA2++m1bdNxY6bjp0A7CpuXwHYIQocAIt1h6nQ8a3TKg8Adie3rwAsmAIHwM65U/W11de5jQVgV3ta9dtuXwHYXgocAMvhWtXDpoLHfR09C7ArPbv6xeqNYwcAh06BA2D5HFM9cCp2PGQ6nQWA3eNZ1S9Ubxk7ADh4ChwAy21PdZcNt7LcehwAwEq6tPrH6rEKHQBbQ4EDYLVcf1rVcf/qftVx4wAAVsql1VOqn502JgXgIClwAKyuvdVdqwdMt7R8RXXYOAiAlfDZ6jenzUjPHzsBuGIKHAC7xwnVV0/FjgdU1x0HALD0zqj+53TyCgAHQIEDYPe62YZix1dVx44DAFhar65+dHoLwCYocACsh8OrO1X3mvKV1VXGQQAslUurJ1Q/VZ0zdgLwpRQ4ANbTnuo2U7HjnlOuNQ4CYCl8pPre6rljBwBfpMABwD43ngod+4oeNxoHALCj/rZ6THXW2AGAAgcA+3dSdZ8NRY9b+3cDYMd9ovqx6qljB8C6c6EKwGYdV92humP15dPbmzmaFmBHPLd6ZPXpsQNgXSlwAHAojqluPxU89hU9bjltagrA9jqj+ubqVWMHwDpS4ABgqx1V3XZDwePLpw1NjxwHAnDILq4eW/1adcnYCbBOFDgAWITDp01Lb1HdfMPbm1fHj4MBOGAvn1ZzfGTsAFgXChwA7LRrzxQ+bjG1A7B5n6y+tXrB2AGwDhQ4AFhWx1Y3uJwcN34AAFX9YvXLYyPAbqfAAcCqunp1/aHocf1p5cdJ1TXHDwBYI0+v/nt1wdgBsFspcACwm504FTs25uT9tK3TXiCnT/fpf7Q6s/rw9P4np5UxV6+uU926ulV1rfETACvh1dVDq7PGDoDdSIEDAL7oalOh47gN2fjnufevPN1Oc3R1pSHHjH/BFvvUlE9O2fjnjW/HtgPdhPAqG07GudX0/m2m7xFYbmdUD6neMnYA7DYKHACw/a6ynwLI3urC6qKZ7K/9ouq88S/YAXuqG1e3mwoet53ev/44ENhxn6keWL1q7ADYTRQ4AICtdOXq9kPR49ZTO7Bzzqu+tvr3sQNgt1DgAAC2257qRkPR47bTxrCuRWBxLqy+qfqnsQNgN3BRAQDslGM3FDv2vb2NI4BhW11SfW/1xLEDYNUpcAAAy+aGQ9HjttMKENctsHV+vPq9sRFglblQAABWwTEzRY/brtnxvrDVfqz6/bERYFUpcAAAq+w61S2rW2zILaurjwOBWd9VPXlsBFhFChwAwG50tepWGwoe+4ofp4wDYc1dUn1z9Q9jB8CqUeAAANbJlaubD0WPW077fuwdB8OauKh6SPWCsQNglShwAADUkdVNh6LHLaa2o8fBsAudX92veuXYAbAqFDgAAPbvsOoGM/t83MIGp+xC51T3rE4dOwBWgQIHAMDBuc60wuOmUxHkJtWNpyNtjxkHw4o4q7p99aGxA2DZKXAAAGy9kzcUO/a93ff+ieNgWDJvqO5aXTh2ACwzBQ4AgMU6fip0jAWQG1fXdn3GknhS9eixEWCZ+QcUAGB5HLWfVR83qq5fHT5+AGyj/1H9ydgIsKwUOAAAVsPeqdBx8+pm09t977vthe1wYXWv6lVjB8AyUuAAAFh919hwzO1NplNfbj6t/oBDceb0fPrk2AGwbBQ4AAB2r8Ongse44uPm1VXGwbAf/1Q9bGwEWDYKHAAA6+mk/dzucv3pdhjY6NHTxqMAS0uBAwCAjY6qblXdtrrd9Pa21dXHgayVz063qvzX2AGwLBQ4AADYjGsNBY/bTas+nOyyPl5Z3aO6dOwAWAYKHAAAHKyjqjtWd5ty1+rLxkHsKj9d/fbYCLAMFDgAANhKp0yFjn1Fjy+vjhwHsbLOn07n+dDYAbDTFDgAANhOR1V32FDwuFt1nXEQK+Vvqm8bGwF2mgIHAACLdt3qIdWDqvtUx40DWHp3rN4wNgLsJAUOAAB20uHV3adixwOn1R6uUZffK6uvHBsBAACALzixemT1lOrM6cQOWc580/jgAewk1XEAAJbZXapvnHLjsZMd9f7qptWFYwcAAACwf7eufqF608xqAtmZ/NT4IAHsFCs4AABYRdevHj6t7Lib69odc3Z17erzYwcAAABwYL6selz14ZkVBrL9+e7xAQEAAAAO3t5pRcfzq0tmXojL9uRt4wMBAAAAbI3rVb9RfXTmBblsfe4zPgAAAADA1jmi+pbqRTMvymXr8o/jxAMAAADb4zbVc2denMuh5+LqlHHCAQAAgO1zp+qFMy/S5dDyS+NEAwAAANvvHtV/zrxQl4PLu8YJBgAAABbnQdVrZ16wy4Hn9uPkAgAAAIv13dUnZ160y+bz6+OkAgAAAIt3UvWMmRfusrl8YJxQAAAAYOc8pProzAt4ueLceZxMgEXYOzYAAAC9u/rz6mrVl1d7xgHs17nV88dGAAAAYGfdszp9ZqWCzOcjCkIAAACwnI6pnjXzYl7m4zQVYOHcogIAAFfswurp1eHVvcZOLuO06tVjIwAAALA8vqk6b2bVgnwx/zBOGgAAALB87uCUlcvNWeOEAQAAAMvpWtWpMy/u5Qu5+ThhANvpsLEBAADYlI9U96s+MHZQ1VeNDQDbSYEDAAAO3lnV/atPjh3YjBUAAABWzV2rz8/cprHOefc4SQAAAMDy+4bqkpkX+uuco8ZJAtgue8cGAADgoLyj+kz1wLFjjT1r2qsEYNspcAAAwNZ5VXXt6o5jx5p65XTSDMC2s8koAABsrf9RvXdsXFO3HhsAtosCBwAAbK2Lq58fG9eUAgcAAACsuNNmNt1ct5wxTgoAAACwWh4284J/HXPlcWIAAACA1fKmmRf865avHCcFYDvYgwMAALbPT48Na+gGYwPAdlDgAACA7fOC6oNj45o5eWwA2A4KHAAAsL2eNTasGQUOYCEUOAAAYHs9Z2xYMwocwEIocAAAwPZ6cfXZsXGNKHAAC6HAAQAA2+vz1b+PjWtEgQNYCAUOAADYfut8m8pJYwPAdtgzNgAAAFvuOtUZY+OauLTaO70F2DZWcAAAwPb7YPXGsXFN7KmOHRsBtpoCBwAALMapY8MaOXpsANhqChwAALAYHx8b1ogCB7DtFDgAAGAxzhob1siVxgaArabAAQAAi7HOBQ4rOIBtp8ABAACL4RYVgG2kwAEAAIthBQfANlLgAACAxbCCA2AbKXAAAMBirPMKDpuMAttOgQMAABbjU2PDGjl8bADYagocAACwGMePDWvkgrEBYKspcAAAwGIcOzaskfPGBoCtpsABAACLocABsI0UOAAAYDEUOAC2kQIHAAAsxsljwxo5f2wA2GoKHAAAsBg3HBvWiBUcwLZT4AAAgMVQ4ADYRgocAACwGOtc4PjE2ACw1RQ4AABgMda1wHF2ddHYCLDVFDgAAGD7HV7dYmxcEx8ZGwC2gwIHAABsvztXR4+Na0KBA1gIBQ4AANh+9xwb1ogCB7AQChwAALD9FDgAtpkCBwAAbL97jw1r5MNjA8B2UOAAAIDtdc/qymPjGrGCA1gIBQ4AANhejxob1szpYwPAdtgzNgAAAFvmiOpj1VXGjjVxyXR6zIVjB8BWs4IDAAC2z0PXuLhR9S7FDWBRFDgAAGD7/NDYsGbeMjYAbBcFDgAA2B5fXt1vbFwzbx4bALaLAgcAAGyP/z02rCErOAAAAGCF3WTaYPPSNc8NxokBAAAAVse/zLzYX7d8cpwUgO3kFhUAANhaX199zdi4hl4wNgBsJwUOANbF46pjx0aALXal6v+MjWvqxWMDAABwaH5gWi59RnWfsRNgC/3azK0a65qbj5MDAAAcvCOrjwwX3U+uThgHAhyiO1YXzrzQX8d8dJwcAADg0PzozIX3pdWZ1cPHwQAH6cTqgzO/a9Y1fzNOEAAAcPCOrs6aufDemOdUJ40fCHAA9lQvmvn9ss75vnGSAACAg/fTMxfdczm7+s7xgwE26Rdnfq+se04eJwkAADg4x25i9caY/6iuM34igMvxHdUlM79P1jmvGCcJAAA4eD8/c9G9mZxTPWZacg5weRQ35vOj40QBAAAH54TqUzMX3QeS11Y3GT8xwERxYz6XuD0FAAC2zuNmLroPJudXP1vtHf8CYK39tOLGfvPScbIAAICDc2J17sxF96HkzdVtxr8IWDuHVU+Y+R0hX8xjxkkDAAAOzm/NXHBvRS6q/rS6xvgXAmvhmOpfZ343yBfj9hQAANgiJ1bnzVx0b2XOqf53daXxLwd2rZOrU2d+H8iX5jnjxAEAAAfn92cuuLcrH6oePS1ZB3avW1YfnPkdIJfN/cfJAwAADtw1q8/PXHBvd95SPXD8YoBd4T7Tqq3x514um7ePkwcAABycP5254F5kXlzdevyigJV0WPUL1YUzP+syn+8bJxEAADhwp0ybgI4X3IvOxdWTqmuPXyCwMr6sesXMz7fsP5+pjhonEgAAOHBPmrng3sl8rvqV6rjxCwWW2jdWn575mZbLz2+MEwkAABy4G04rJ8YL7mXIx6ofrA4fv2hgqVy5+quZn2G54pznaFgAANgaT5u54F62vKP6uvELB5bCHar3z/zcyuby6+OEAgAAB+7mMxfby5zXVd9a7R2/EWDhDqt+3kaih5RPVSeMEwsAABy4f5i54F6FvK/6keqY8RsCFuIrqzfN/GzKgeVnx4kFAAAO3O1mLrZXLZ+YNiO9xvjNAdviOtXfzfwsyoHnE9XR4wQDAAAH7jkzF9yrmvOqJ1Q3Hr9JYEscMxUTz5v5+ZODy2PGSQYAAA7cnWcutndDLqmeNS2fBw7dnuo7qg/N/LzJweetTocCAICt8YKZC+7dlldW3zC9QAMO3F2mjX3Hny05tFwynTwDAAAconvNXHDv5ryz+v7qqHEigFl3qp4987MkW5PfHyccAAA4OK+eueBeh3x0OtLyquOEAFXdp3rhzM+ObF0+WF1pnHgAAODAffXMBfe65bzpFIivq44YJwjW0NdUr5j5WZGtz1ePkw8AABycdV29sb+cVf1xdfdxomCX21N9Y/X6mZ8L2Z78zfggAAAAB+ehMxfc8sW8t3qco2ZZA99RvX3mZ0C2Lx+qrjE+EAAAwMF508xFt8zntdWPVlcfJxFW1I2rX5/2gBif77K9uaC66/iAAAAAB+fhMxfdcsW5qHpe9cjq2HFSYcmdUP1g9aqZ57YsLj84PjAAAMDBOaw6beaiWw4s51ZPrR5UXXmcZFgiD62eNvMclsXnyeODAwAAHLxHzFx0y6HnedV3VyeNEw474NbV46szZ56rsjN5U3X0+EABLLM9YwMALJHDqndXNxw72DKXVP9Z/WP1D9X7xwGwDfZW95xWazy0utk4gB11dnWH6r/GDoBlpsABwDL7zupJYyPb6n3Vyzfk7eMAOEhXrR48FTQeVF1lHMBSuKS6T/XSsQNg2SlwALCs9k4vtk8ZO1ios6tXTMWOl1Wvn05VgM245YZVGneffq5Zbv+z+s2xEWAVKHAAsKy+v/rTsZEdd/50DO3LpqLHK6rPjINYS3uq21b3mG4/uUf1ZeMgltpzp2IUwEpS4ABgGR1ZfaC65tjB0rmkeuuGW1peUn14HMSudFR15w0FjbtPR7uymt5RfcV04hLASlLgAGAZ/Uj1+2MjK+Pj1ds25K1TPjkOZKUcv2Flxj2rO01FDlbfudXtq9PHDoBVosABwLI5uvpgdeLYwcr76IaCx8bix6fHgeyoq057Z9yyusWGXNe14670ueqB0wosgJXmHykAls1PVb81NrKrfWQqdLx9Knq8vXqLvT223Y2mI5hvMRUzbj69vcY4kF3rvKm48bKxA2AVKXAAsEyOnfbesHqDppU8G2912Rd7BFyxPdW1qxsMuf709jpONFl751cPqf5j7ABYVQocACyTn68eNzbC4Jxpn4+PTsfYnjX9eX9vPzV+ghV37erkaRPek6uTNrx/8nQryU3GD4LBV1cvHBsBVpkCBwDL4oRp9YZTGNgOZ+6n+HH+tEx/zOcup2+rVpAcU11tylWnlUsb/3z1De/vK15Y3cRWeFD1/LERYNUpcACwLB43reCAVfGZmeLH56brqyOnE0Y2vt34/tHjJ4MF+ZrqX8dGgN1AgQOAZXDitHrj2LEDgC1xQfX1ihvAbnbY2AAAO+BnFDcAts1FihvAOrB7NgDL4OPVnabNEwHYOhdVD6+eO3YA7DYKHAAsgzOrv5gKHfeY9ikA4NDsK27889gBsBvZgwOAZXOt6verbxo7ANi0i6tvVNwA1okCBwDL6gHVE6rrjR0AXK6zp+LGS8YOgN3MLSoALKvTqz+b/q26i3+zADblLdOtfm8ZOwB2Oys4AFgFt6ieWN117ADg/3la9ejq82MHwDpwTCwAq+C06u7V91SfHDsB1tyF1WOqRypuAOvMCg4AVs3Vq8dX3z52AKyhM6uvr14zdgCsGwUOAFbVfaY9Om4ydgCsiddUD52O2AZYezZsA2BVvX8qcFxc3a06fBwAsIv9UfXN1bljB8C6soIDgN3gJlOx4z5jB8Au8/nqUdUzxg6AdWcFBwC7wdnVX1VvqG5VnTwOANgF/msq5L547ADAKSoA7C7Prm5ffUv1zrETYEVdOq1Su3X1lrETgC9wiwoAu9Xe6aSVX6yuP3YCrIh3V99RvWrsAOBLuUUFgN3q0upN1R9XH6nuUB03DgJYUhdWvzGtSPvA2AnAZVnBAcC6OKr6oepnq6uPnQBL5HXTqo3Txg4A9s8KDgDWxcXVf1Z/Up1XfXl19DgIYAd9tvqZ6nuqj4+dAFw+BQ4A1s0F1UunDfsumQodR46DABbsRdUDquePHQBsjltUAFh3V69+rvpBKzqAHXBW9RPV/x07ADgwVnAAsO4+N/2P6ROrY6vb+fcRWJCnVQ91QgrA1rCCAwC+1HWrx1WPqg4bOwG2wMurn1LYANhaChwAMO9606kr311dbewEOAivqH6h+o+xA4BDp8ABAJfv6OoR1Q9Xdxg7ATbhNdUvVv86dgCwdRQ4AGDz7jYVOv5bdcTYCTB441TYePbYAcDWU+AAgAN3UvX91Q9U1x47gbX31uqx1TOrS8dOALaHAgcAHLzDq2+oHlPda+wE1s47q1+qnq6wAbB4ChwAsDVuWf3odPrKMWMnsKudXv1y9dTqkrETgMVQ4ACArXV89ejpBJYbj53ArnFp9YLqT6rnVBePAwBYLAUOANgee6oHTrevPNi/ubBrfLx6UvVn1XvHTgB2jostANh+15tOX3l0ddWxE1gJL59WazyjumDsBGDnKXAAwOIcWT1oOmb266oTxgHAUvlM9X+rP67ePnYCsFwUOABgZxxRPWAqdny9lR2wVN44rdZ4WvXZsROA5aTAAQA77/Dq/lOx42HVieMAYNudV/1t9afVq8dOAJafAgcALJe91X2qb6q+obrGOADYMudWz6ueOZ2Ecu44AIDVocABAMtrb3WvqdjxjdXJ4wDggJ1dPXsqajy/+vw4AIDVpMABAKthT3XP6TaWh1fXHgcA+/Xh6lnVP1Yvqi4eBwCw+hQ4AGD17KnuvqHYcco4AOj0qaDxj9V/VpeOAwDYXRQ4AGD13WbapPSrq3tXx4wDYE28ZSpoPLM6dewEYHdT4ACA3ec+U7HjvtVdxk7YRS6tXjMVNZ4xrdoAYE0pcADA7nbCVPC437TK4+bjAFgh51evq16xIWePgwBYTwocALBerlnddVrZcefqTtXx4yBYEh+tXrmhmPH66sJxEACkwAEAa2/PtKrjzhuKHretjhgHwja7tHrbUNBwywkAm6bAAQDMudtU7NhX+LjROAAO0aeqN1SvmooZL68+Mw4CgM1S4AAANuOE6daWfUWPO1cnjYNgxrnTyoy3TnnL9Paj40AAOBQKHADAwTqpuulMblQdPQ5m17ugesdMIeP940AA2A4KHADAVttTXXem8HHT6nrV3vEDWCmXTHtj7Ctk7CtmvKu6eBwMAIuiwAEALNIR1Y1nCh83nU54YeddUJ1R/Vf1gf3kovGDAGCnKXAAAMviiOpa060v+3Lyft6/RnX4+AnYlHOmIsX+ChgfmU40AYCVosABAKyqEzdZDDmpOn784F3gwursKZ84gLefGz8RAOwGChwAwLq43oZixzHTRqhbnWOmv+u86VaPz0/Z9/6+t+dPBYqNbXPjPld9cipMnDW9v69Q4UhVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGDp/P/Ikql/R/tQkQAAAABJRU5ErkJggg==');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: grayscale(1) opacity(0.55);
  transition: filter 0.2s ease;
}

.site-nav-mark:hover .site-nav-logo,
.site-nav-mark:focus-visible .site-nav-logo {
  filter: grayscale(1) opacity(0.85);
}

/* ---- Dropdown menu ---- */

.site-nav-menu {
  position: relative;
}

.site-nav-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  border-radius: 50%;
  color: var(--ink-60);
  transition: background 0.15s ease, color 0.15s ease;
}
.site-nav-toggle:hover { background: var(--ink-10); color: var(--ink); }

.site-nav-chevron {
  display: block;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -4px;
  transition: transform 0.2s ease, margin 0.2s ease;
}

.site-nav-toggle[aria-expanded="true"] .site-nav-chevron {
  transform: rotate(-135deg);
  margin-top: 3px;
}

.site-nav-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 168px;
  background: var(--bg);
  border: 1px solid var(--ink-10);
  border-radius: 14px;
  box-shadow: 0 14px 32px rgba(20, 19, 18, 0.14);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity 0.16s ease, transform 0.16s ease;
  z-index: 40;
}

.site-nav-dropdown.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.site-nav-dropdown a {
  padding: 9px 12px;
  border-radius: 9px;
  font-size: 14px;
  color: var(--ink-70);
}

.site-nav-dropdown a:hover,
.site-nav-dropdown a:focus-visible {
  background: var(--ink-10);
  color: var(--ink);
}

.site-nav-dropdown a.current {
  color: var(--ink);
  font-weight: 500;
}

/* Standalone centered logo mark — used on the simpler auth/reset-password
   cards, which don't need the full nav dropdown. */
.nav-mark-center {
  text-align: center;
  margin-bottom: 32px;
}

.blank-textarea {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 100vh;
  resize: none;
  border: none;
  background: transparent;
  padding: 40px 32px;
  font-size: 19px;
  line-height: 1.7;
  color: var(--faint);
  caret-color: var(--ink);
}

.blank-textarea:focus {
  outline: none;
  color: var(--ink);
}
.blank-textarea::placeholder { color: var(--ink-30); opacity: 1; }
.blank-textarea:focus::placeholder { opacity: 0; }

@media (max-width: 480px) {
  /* Keeps the first line of typed text clear of the nav bar. */
  .blank-textarea { padding-top: 78px; }
}

@media (min-width: 640px) {
  .blank-textarea { padding: 64px 64px; }
}
@media (min-width: 768px) {
  .blank-textarea { padding: 96px 128px; }
}

.toast-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 24px;
  z-index: 30;
  display: flex;
  justify-content: center;
  padding: 0 16px;
}

.toast-pill {
  background: var(--ink);
  color: var(--bg);
  font-size: 14px;
  border-radius: 16px;
  padding: 14px 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  max-width: 460px;
  width: 100%;
  box-sizing: border-box;
}

.toast-pill a, .toast-pill button {
  color: var(--bg);
  background: none;
  border: none;
  text-decoration: underline;
  text-underline-offset: 2px;
  font-size: 14px;
  white-space: nowrap;
}

.toast-pill button.quiet {
  opacity: 0.7;
  text-decoration: none;
}
.toast-pill button.quiet:hover { opacity: 1; }

@media (max-width: 480px) {
  .toast-pill {
    font-size: 13px;
    padding: 12px 14px;
    border-radius: 14px;
  }
  .toast-pill a, .toast-pill button {
    font-size: 13px;
  }
}

.toast-tab {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 30;
  background: var(--ink);
  color: var(--bg);
  border: none;
  padding: 16px 8px;
  border-radius: 10px 0 0 10px;
  font-size: 16px;
  box-shadow: -4px 0 16px rgba(20, 19, 18, 0.12);
}
.toast-tab:hover { padding-right: 12px; }

/* ---------- Device banner ---------- */

.device-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--ink);
  color: var(--bg);
  font-size: 14px;
}

.device-banner-inner {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 16px;
}

.device-banner button {
  flex-shrink: 0;
  background: none;
  border: none;
  color: var(--bg);
  opacity: 0.8;
  padding: 4px 8px;
  border-radius: 4px;
}
.device-banner button:hover { opacity: 1; }

/* ---------- Auth form ---------- */

.auth-card { width: 100%; max-width: 380px; }
.auth-title {
  margin: 0 0 30px;
  text-align: center;
  font-size: 17px;
  font-weight: 400;
  letter-spacing: -0.01em;
}
.auth-name-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.auth-mode-prompt {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--ink-10);
  text-align: center;
  color: var(--ink-50);
  font-size: 13px;
  line-height: 1.5;
}
.auth-mode-prompt button {
  min-height: auto;
  padding: 2px 0;
  border: 0;
  background: none;
  color: var(--ink-70);
  font-size: inherit;
  font-weight: 400;
  border-bottom: 1px solid var(--ink-30);
}
.auth-mode-prompt button:hover { color: var(--ink); border-bottom-color: var(--ink); }
@media (max-width: 380px) {
  .auth-name-fields { grid-template-columns: 1fr; gap: 0; }
}

.tab-row {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 32px;
  font-size: 14px;
}

.tab-btn {
  background: none;
  border: none;
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  color: var(--ink-40);
}

.tab-btn.active {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

.field { margin-bottom: 16px; }

.field label {
  display: block;
  font-size: 12px;
  color: var(--ink-50);
  margin-bottom: 6px;
}

.field input {
  width: 100%;
  border: 1px solid var(--ink-15);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 14px;
  background: transparent;
}

.field input:focus {
  border-color: var(--ink-40);
  outline: none;
}
.username-wrap{display:flex;align-items:center;border:1px solid var(--ink-20);border-radius:8px;background:var(--bg);overflow:hidden}.username-wrap:focus-within{border-color:var(--ink-60)}.username-wrap span{padding-left:12px;color:var(--ink-40);font-size:14px}.username-wrap input{border:0!important;border-radius:0!important;padding-left:4px!important;box-shadow:none!important}.availability-text{display:block;margin-top:6px;font-size:11px;line-height:1.35;color:var(--ink-40)}.availability-text.available{color:#466851}.availability-text.unavailable{color:#9b493f}

.btn-primary {
  width: 100%;
  background: var(--ink);
  color: var(--bg);
  border: none;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 14px;
}
.btn-primary:hover { opacity: 0.9; }
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-outline {
  width: 100%;
  background: transparent;
  border: 1px solid var(--ink-15);
  color: var(--ink);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 14px;
  text-align: center;
  display: inline-block;
}
.btn-outline:hover { background: rgba(20,19,18,0.05); }

.error-text { font-size: 12px; color: #dc2626; margin: 0 0 12px; }
.hint-text { font-size: 12px; color: var(--ink-40); margin-top: 24px; text-align: center; line-height: 1.6; }

.password-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.password-wrap input {
  width: 100%;
  padding-right: 56px;
}

.password-toggle {
  position: absolute;
  right: 6px;
  background: none;
  border: none;
  font-size: 12px;
  color: var(--ink-50);
  padding: 6px 8px;
  border-radius: 6px;
}
.password-toggle:hover { color: var(--ink); }

.forgot-link {
  display: block;
  text-align: right;
  font-size: 12px;
  color: var(--ink-50);
  text-decoration: underline;
  text-underline-offset: 2px;
  margin: -8px 0 16px;
}
.forgot-link:hover { color: var(--ink); }

.remember-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink-70);
  margin: 4px 0 12px;
  cursor: pointer;
}

.remember-row input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: var(--ink);
}

/* ---------- Dashboard ---------- */

.dash-layout {
  display: flex;
  height: 100vh;
  height: 100dvh;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
}

.dash-sidebar {
  width: 224px;
  flex-shrink: 0;
  min-height: 0;
  border-right: 1px solid var(--ink-10);
  display: flex;
  flex-direction: column;
  background: var(--bg);
  overflow: hidden;
}

.dash-sidebar-head {
  flex-shrink: 0;
  padding: 20px 20px 0;
}

.sidebar-scroll-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 20px;
}

.landing-sidebar-links {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.landing-sidebar-links a {
  padding: 8px 4px;
  color: var(--ink-60);
  font-size: 14px;
}
.landing-sidebar-links a:hover { color: var(--ink); }

@media (max-width: 767px) {
  .dash-sidebar {
    position: fixed;
    top: 0;
    right: 0;
    left: auto;
    bottom: 0;
    z-index: 60;
    width: 260px;
    transform: translateX(100%);
    transition: transform 0.25s ease;
  }
  .dash-sidebar.open {
    transform: translateX(0);
    box-shadow: -8px 0 24px rgba(20, 19, 18, 0.15);
  }
}

.dash-backdrop {
  display: none;
}

@media (max-width: 767px) {
  .dash-backdrop.open {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(20, 19, 18, 0.35);
    z-index: 55;
  }
}

/* Base (desktop) states — declared before the mobile media query below so
   that the media query's overrides win in the cascade on small screens.
   (Putting equal-specificity "display: none" rules *after* a media query
   that sets "display: block" would incorrectly win at all sizes — that
   was the bug that hid the mobile Generate image button entirely.) */
.dash-tuck-tab {
  display: none;
}

.dash-drawer-action {
  display: none;
}

@media (max-width: 767px) {
  .dash-tuck-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 70;
    width: 26px;
    height: 52px;
    background: var(--ink-10);
    border: none;
    border-radius: 12px 0 0 12px;
    padding: 0;
    font-size: 17px;
    font-weight: 400;
    color: var(--ink-60);
    box-shadow: -2px 0 10px rgba(20, 19, 18, 0.08);
    transition: right 0.25s ease, background 0.2s ease, color 0.2s ease;
  }
  .dash-tuck-tab:hover { background: var(--ink-15); color: var(--ink); }
  .dash-tuck-tab.open {
    right: 260px;
  }

  .dash-drawer-action {
    display: block;
    width: 100%;
    margin-top: 12px;
  }
  /* The desktop top-right buttons are replaced by the drawer's copies on
     mobile, since everything lives in the tucked panel there. */
  .dash-top-actions .btn-pill#generateBtn,
  .dash-top-actions .btn-outline#pdfBtn {
    display: none;
  }
}

/* ---------- Sidebar toolbox (text design) ---------- */

.dash-toolbox-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: none;
  border: none;
  padding: 8px 6px;
  margin: 4px 0 8px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--ink-60);
}
.dash-toolbox-btn:hover { background: var(--ink-10); color: var(--ink); }
.dash-toolbox-btn[aria-expanded="true"] { background: var(--ink-10); color: var(--ink); }
.dash-toolbox-btn svg { flex-shrink: 0; }

.dash-toolbox-panel {
  border: 1px solid var(--ink-10);
  border-radius: 12px;
  padding: 14px 12px;
  margin-bottom: 16px;
}
.dash-toolbox-panel .option-group { margin-bottom: 14px; }
.dash-toolbox-panel .option-group:last-child { margin-bottom: 0; }
.dash-toolbox-panel .chip-row { gap: 6px; }
.dash-toolbox-panel .chip { font-size: 11px; padding: 5px 10px; }

.dash-new-btn {
  background: none;
  border: none;
  text-align: left;
  font-size: 14px;
  color: var(--ink-70);
  margin-bottom: 24px;
  padding: 0;
}
.dash-new-btn:hover { color: var(--ink); }

.dash-saved-label {
  font-size: 12px;
  color: var(--ink-40);
  margin-bottom: 8px;
}

.dash-saved-list {
  flex: 1;
  min-height: 0; /* required for overflow-y:auto to actually engage inside a flex column, rather than the container growing unbounded */
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dash-space-search {
  width: 100%;
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid var(--ink-10);
  border-radius: 8px;
  outline: none;
  background: transparent;
  color: var(--ink-70);
  font-size: 11px;
}

.dash-space-search::placeholder { color: var(--ink-30); }
.dash-space-search:focus { border-color: var(--ink-30); }

.dash-space-search-empty {
  margin: 2px 0 10px;
  color: var(--ink-40);
  font-size: 10px;
}

.dash-saved-item {
  display: block;
  width: 100%;
  flex-shrink: 0; /* without this, items compress/shrink to fit as more are added instead of the list scrolling */
  text-align: left;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 6px 8px;
  border-radius: 6px;
  background: none;
  border: none;
  color: var(--ink-50);
}
.dash-saved-item:hover { color: var(--ink); }
.dash-saved-item.active { background: var(--ink-10); color: var(--ink); }

.dash-empty { font-size: 12px; color: var(--ink-30); }

.dash-footer {
  flex-shrink: 0;
  padding: 16px 20px 20px;
  border-top: 1px solid var(--ink-10);
}

.dash-footer p { font-size: 12px; color: var(--ink-40); margin: 0 0 8px; }
.dash-footer a { display: block; font-size: 12px; color: var(--ink-60); margin-bottom: 4px; }
.dash-footer a:hover { color: var(--ink); }

.dash-main { flex: 1; min-width: 0; position: relative; overflow: hidden; }

.canvas-topbar-floating {
  position: absolute;
  top: 16px;
  right: 20px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg);
  border: 1px solid var(--ink-10);
  border-radius: var(--radius-full);
  padding: 6px 10px;
  box-shadow: 0 8px 24px rgba(20, 19, 18, 0.06);
}

.sidebar-export-row {
  display: flex;
  gap: 8px;
  margin-bottom: 4px;
}
.sidebar-export-row button {
  flex: 1;
  padding: 7px 0;
  font-size: 12px;
}

.bg-swatch-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.bg-swatch-row .swatch {
  width: 22px;
  height: 22px;
}

.palette-panel .chip-row {
  display: grid;
  /* Let the actual panel width decide the column count. Each 36px cell
     reserves four pixels around the 28px swatch for its active ring. */
  grid-template-columns: repeat(auto-fit, 36px);
  grid-auto-rows: 36px;
  justify-content: start;
  justify-items: center;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  overflow: hidden;
}
.palette-panel .swatch {
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  padding: 0;
  flex: none;
  border: 1px solid var(--ink-15);
}
.sidebar-tools-row button:disabled {
  opacity: 0.28;
  cursor: default;
}

.multi-select-toolbar {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 22;
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--bg);
  border: 1px solid var(--ink-10);
  border-radius: var(--radius-full);
  padding: 6px 8px;
  box-shadow: 0 8px 24px rgba(20, 19, 18, 0.1);
}

.multi-select-toolbar button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  background: none;
  border: none;
  border-radius: 7px;
  font-size: 13px;
  color: var(--ink-60);
}
.multi-select-toolbar button:hover { background: var(--ink-10); color: var(--ink); }

.multi-select-divider {
  width: 1px;
  height: 18px;
  background: var(--ink-10);
  margin: 0 2px;
}

.dash-saved-item-row {
  position: relative;
  display: flex;
  align-items: center;
}
.dash-saved-item-row .dash-saved-item { flex: 1; padding-right: 62px; }

.dash-saved-item-actions {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  display: none;
  gap: 2px;
}
.dash-saved-item-row:hover .dash-saved-item-actions,
.dash-saved-item-row:focus-within .dash-saved-item-actions { display: flex; }

.dash-saved-item-actions button {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: 4px;
  font-size: 11px;
  color: var(--ink-40);
}
.dash-saved-item-actions button:hover { color: var(--ink); background: var(--ink-10); }

.dash-saved-item-rename-input {
  width: 100%;
  border: 1px solid var(--ink-15);
  border-radius: 6px;
  padding: 5px 8px;
  font-size: 12px;
  background: var(--bg);
  color: var(--ink);
}

/* ---------- Desktop sidebar collapse/expand ---------- */

.dash-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}

.dash-collapse-btn {
  display: none;
  background: none;
  border: none;
  color: var(--ink-40);
  font-size: 14px;
  padding: 3px 6px;
  border-radius: 4px;
}
.dash-collapse-btn:hover { color: var(--ink); }

.dash-expand-tab {
  display: none;
}

@media (min-width: 768px) {
  .dash-collapse-btn {
    display: block;
  }

  .dash-sidebar {
    overflow: hidden;
    transition: width 0.22s ease, padding 0.22s ease, border-color 0.22s ease;
  }

  body.sidebar-collapsed .dash-sidebar {
    width: 0;
    padding-left: 0;
    padding-right: 0;
    border-right-color: transparent;
  }

  body.sidebar-collapsed .dash-sidebar > * {
    /* Prevents the collapsing sidebar's content from visibly reflowing/
       wrapping during the width transition. */
    white-space: nowrap;
  }

  body.sidebar-collapsed .dash-expand-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 22px;
    height: 52px;
    background: var(--ink-10);
    border: none;
    border-radius: 0 12px 12px 0;
    color: var(--ink-60);
    font-size: 16px;
    z-index: 70;
    box-shadow: 2px 0 10px rgba(20, 19, 18, 0.08);
    transition: background 0.2s ease, color 0.2s ease;
  }
  body.sidebar-collapsed .dash-expand-tab:hover {
    background: var(--ink-15);
    color: var(--ink);
  }
}

.dash-textarea {
  width: 100%;
  height: 100vh;
  resize: none;
  border: none;
  background: transparent;
  padding: 40px 32px;
  font-size: 19px;
  line-height: 1.7;
  color: var(--ink);
  caret-color: var(--ink);
  transition: font-weight 0.15s ease, letter-spacing 0.15s ease, line-height 0.15s ease;
}
.dash-textarea:focus { outline: none; }

@media (max-width: 767px) {
  /* Keeps the first line of typed text clear of the burger icon,
     regardless of exact phone width. */
  .dash-textarea { padding-top: 64px; }
}

@media (min-width: 640px) {
  .dash-textarea { padding: 64px 64px; }
}
@media (min-width: 768px) {
  .dash-textarea { padding: 80px 96px; }
}

.dash-top-actions {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.dash-top-actions .btn-outline {
  width: auto;
  padding: 8px 16px;
  font-size: 12px;
  border-radius: var(--radius-full);
}

.save-status { font-size: 12px; color: var(--ink-30); }
.save-status.error { color: #dc2626; }

.btn-pill {
  background: var(--ink);
  color: var(--bg);
  border: none;
  border-radius: var(--radius-full);
  padding: 8px 16px;
  font-size: 12px;
}
.btn-pill:hover { opacity: 0.9; }
.btn-pill:disabled { opacity: 0.3; cursor: not-allowed; }

/* ---------- Modal / image generator ---------- */

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(20,19,18,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.modal-card {
  background: var(--bg);
  border-radius: 20px;
  width: 100%;
  max-width: 720px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 24px;
}

@media (min-width: 640px) {
  .modal-card { padding: 32px; }
}

.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}

.modal-head h2 { font-size: 16px; font-weight: 400; margin: 0; }
.modal-head button {
  background: none; border: none; font-size: 14px; color: var(--ink-50);
}
.modal-head button:hover { color: var(--ink); }

.modal-grid {
  display: grid;
  gap: 24px;
}

@media (min-width: 640px) {
  .modal-grid { grid-template-columns: 1fr 1fr; }
}

.canvas-wrap {
  border: 1px solid var(--ink-10);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
}

.canvas-wrap canvas { width: 100%; height: auto; display: block; }

.usage-note { font-size: 12px; color: var(--ink-40); }

.pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-size: 12px;
  color: var(--ink-60);
  margin: 10px 0;
}

.pager button {
  background: none;
  border: none;
  font-size: 16px;
  color: var(--ink-50);
  padding: 2px 6px;
}
.pager button:hover:not(:disabled) { color: var(--ink); }
.pager button:disabled { opacity: 0.25; cursor: not-allowed; }

.page-note {
  font-size: 12px;
  color: var(--ink-50);
  line-height: 1.5;
  margin: 4px 0 0;
}

.pdf-modal-card {
  max-width: 520px;
}

.pdf-modal-card .usage-note {
  margin: 4px 0 16px;
}

.pdf-preview-wrap {
  border: 1px solid var(--ink-10);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
  background: var(--ink-10);
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pdf-preview-frame {
  width: 100%;
  height: 420px;
  border: none;
  display: block;
}

.option-group { margin-bottom: 20px; }
.option-label { font-size: 12px; color: var(--ink-50); margin-bottom: 8px; }

.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }

.chip {
  border: 1px solid var(--ink-15);
  background: transparent;
  color: var(--ink-70);
  border-radius: var(--radius-full);
  padding: 6px 12px;
  font-size: 12px;
  text-transform: capitalize;
  transition: background-color 80ms ease, color 80ms ease, border-color 80ms ease, transform 80ms ease;
}
.chip:hover { border-color: var(--ink-40); }
.chip:active { transform: scale(0.97); }
.chip.active { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.chip:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.chip:disabled { opacity: 0.3; cursor: not-allowed; }
.chip:disabled:hover { border-color: var(--ink-15); }

.swatch {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--ink-10);
}
.swatch.active { box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--ink); }

.modal-section-divider {
  border-top: 1px solid var(--ink-10);
  margin: 20px 0 16px;
}

.limit-box {
  border: 1px solid var(--ink-15);
  border-radius: 12px;
  padding: 16px;
}
.limit-box p { margin: 0 0 8px; font-size: 14px; }
.limit-box p.small { font-size: 12px; color: var(--ink-60); }
.limit-box .btn-outline { display: inline-block; width: auto; margin-top: 4px; padding: 8px 16px; font-size: 12px; background: var(--ink); color: var(--bg); border: none; }

/* ---------- Settings ---------- */

.page-wrap {
  max-width: 420px;
  margin: 0 auto;
  padding: 40px 24px;
}

.back-link { font-size: 12px; color: var(--ink-50); }
.back-link:hover { color: var(--ink); }

.page-title { font-size: 18px; font-weight: 400; margin: 24px 0 32px; }

.settings-row { margin-bottom: 24px; font-size: 14px; }
.settings-row .row-label { font-size: 12px; color: var(--ink-40); margin-bottom: 4px; }
.settings-row .row-flex { display: flex; align-items: center; justify-content: space-between; }
.settings-row a.change-link { font-size: 12px; text-decoration: underline; text-underline-offset: 2px; color: var(--ink-60); }
.settings-row a.change-link:hover { color: var(--ink); }

/* ---------- Pricing ---------- */

.pricing-wrap { min-height: 100vh; display: grid; place-items: center; max-width: 1080px; margin: 0 auto; padding: 32px 24px; }
.pricing-title { font-size: 26px; text-align: center; margin: 0 0 8px; font-weight: 400; }
.pricing-sub { font-size: 14px; color: var(--ink-50); text-align: center; margin: 0 0 40px; }
.pricing-notice {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.pricing-logo { display: inline-flex; margin-bottom: 24px; }
.pricing-logo .site-nav-logo { width: 48px; height: 48px; }
.pricing-notice .pricing-title { margin-bottom: 26px; }
.pricing-notice p { margin: 0 auto 16px; color: var(--ink-60); font-size: 14px; line-height: 1.7; }
.pricing-notice p a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.pricing-notice-actions { display: flex; justify-content: center; }
.pricing-back { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; text-decoration: none; }
.pricing-back-arrow { font-size: 18px; line-height: 1; }
.pricing-back:hover .pricing-back-arrow,
.pricing-back:focus-visible .pricing-back-arrow { animation: pricing-back-arrow 0.58s ease-in-out; }
@keyframes pricing-back-arrow {
  0%, 100% { transform: translateX(0); }
  45% { transform: translateX(-6px); }
}
.pricing-notice-links { display: flex; justify-content: center; gap: 22px; margin-top: 24px; font-size: 12px; }
.pricing-notice-links a { color: var(--ink-60); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 520px) {
  .pricing-wrap { padding: 28px 22px; }
  .pricing-notice { max-width: 100%; }
}

.toggle-wrap { display: flex; justify-content: center; margin-bottom: 48px; }
.toggle-group {
  display: inline-flex;
  border: 1px solid var(--ink-15);
  border-radius: var(--radius-full);
  padding: 4px;
  font-size: 14px;
}
.toggle-btn {
  background: none; border: none; border-radius: var(--radius-full);
  padding: 6px 16px; color: var(--ink-60);
}
.toggle-btn.active { background: var(--ink); color: var(--bg); }
.toggle-btn .badge { font-size: 10px; opacity: 0.7; margin-left: 6px; }

.plan-grid { display: grid; gap: 20px; }
@media (min-width: 720px) { .plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.plan-card {
  position: relative;
  border: 1px solid var(--ink-15);
  border-radius: 20px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.plan-card.featured { border-color: var(--ink); }

.plan-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(20, 19, 18, 0.1);
  border-color: var(--ink-40);
}

.plan-card.selected {
  border-color: var(--ink);
  border-width: 2px;
  box-shadow: 0 12px 28px rgba(20, 19, 18, 0.12);
}

.plan-card.selected .plan-name::after {
  content: '✓ Selected';
  display: inline-block;
  margin-left: 8px;
  font-size: 10px;
  color: var(--bg);
  background: var(--ink);
  border-radius: var(--radius-full);
  padding: 2px 8px;
  vertical-align: middle;
}

.plan-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--ink);
  color: var(--bg);
  font-size: 10px;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}

.plan-name { font-size: 14px; color: var(--ink-60); margin: 0 0 4px; }
.plan-price { font-size: 24px; margin: 0 0 4px; }
.plan-price .period { font-size: 12px; color: var(--ink-40); }
.plan-sub { font-size: 12px; color: var(--ink-40); margin: 0 0 16px; }

.plan-features { list-style: none; padding: 0; margin: 0 0 24px; font-size: 14px; color: var(--ink-70); flex: 1; }
.plan-features li { margin-bottom: 8px; }
.plan-features li.dim { font-size: 12px; color: var(--ink-50); }
.plan-feature-group { list-style: none; margin: 0 0 18px; }
.plan-feature-group > strong { display: block; margin-bottom: 7px; color: var(--ink); font-size: 12px; font-weight: 600; }
.plan-feature-group > ul { margin: 0; padding-left: 18px; }
.plan-feature-group > ul > li { margin-bottom: 6px; }
.plan-open-note { margin: auto 0 0; padding-top: 14px; border-top: 1px solid rgba(20,19,18,0.1); color: var(--ink-50); font-size: 11px; }

.plan-cta {
  text-align: center;
  font-size: 12px;
  border: 1px solid var(--ink-15);
  border-radius: 10px;
  padding: 10px;
  color: var(--ink-50);
}
.plan-cta.free { color: var(--ink); }
.plan-cta.free:hover { background: rgba(20,19,18,0.05); }
.plan-cta.upgrade {
  background: var(--ink); color: var(--bg); border: none; font-size: 14px; padding: 10px;
}
.plan-cta.upgrade:hover { opacity: 0.9; }

/* ---------- Upgrade / success ---------- */

.upgrade-toggle { display: flex; gap: 8px; margin-bottom: 24px; }
.upgrade-toggle button {
  flex: 1; border: 1px solid var(--ink-15); border-radius: 10px; padding: 10px; font-size: 14px;
  background: transparent; color: var(--ink-70);
}
.upgrade-toggle button.active { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.total-row {
  border: 1px solid var(--ink-15);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  margin-bottom: 24px;
}
.total-row span:first-child { color: var(--ink-60); }

.disclaimer { font-size: 12px; color: var(--ink-40); margin-bottom: 24px; }

/* ---------- Content pages (About / Terms) ---------- */

.content-page {
  max-width: 680px;
  margin: 0 auto;
  padding: 96px 24px 80px;
}

.content-page h1 {
  font-size: 28px;
  font-weight: 400;
  margin: 0 0 12px;
}

.content-page .content-subtitle {
  font-size: 14px;
  color: var(--ink-50);
  margin: 0 0 48px;
}

.content-page h2 {
  font-size: 17px;
  font-weight: 600;
  margin: 40px 0 12px;
}

.content-page p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-70);
  margin: 0 0 16px;
}

.content-page ul {
  margin: 0 0 16px;
  padding-left: 22px;
}

.content-page li {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-70);
  margin-bottom: 6px;
}

.content-page a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.content-page hr {
  border: none;
  border-top: 1px solid var(--ink-10);
  margin: 40px 0;
}

.content-page strong {
  color: var(--ink);
  font-weight: 600;
}

@media (max-width: 640px) {
  .content-page {
    padding: 88px 20px 64px;
  }
  .content-page h1 { font-size: 24px; }
}

/* ---------- Canvas editor (Phase 1, beta) ---------- */

.canvas-page {
  height: 100vh;
  display: flex;
  flex-direction: column;
}

.canvas-topbar {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--ink-10);
  flex-wrap: wrap;
}

.canvas-beta-badge {
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-50);
  border: 1px solid var(--ink-15);
  border-radius: var(--radius-full);
  padding: 2px 8px;
}

/* ---------- Text/Canvas mode switcher (used in both dashboard.html and canvas.html) ---------- */

.mode-switch {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ink-15);
  border-radius: var(--radius-full);
  padding: 3px;
  font-size: 12px;
  gap: 2px;
}

.mode-switch a {
  padding: 5px 12px;
  border-radius: var(--radius-full);
  color: var(--ink-60);
}

.mode-switch a:hover:not(.active) {
  color: var(--ink);
}

.mode-switch a.active {
  background: var(--ink);
  color: var(--bg);
}

.canvas-preset-control {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.canvas-preset-control select {
  border: 1px solid var(--ink-15);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 13px;
  background: var(--bg);
  color: var(--ink);
}

.canvas-custom-size {
  display: flex;
  align-items: center;
  gap: 6px;
}

.canvas-custom-size input {
  width: 72px;
  border: 1px solid var(--ink-15);
  border-radius: 8px;
  padding: 6px 8px;
  font-size: 13px;
  background: var(--bg);
}

.canvas-custom-size span {
  color: var(--ink-40);
  font-size: 12px;
}

.canvas-zoom-control {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}

.canvas-zoom-control button {
  background: none;
  border: none;
  color: var(--ink-60);
  font-size: 14px;
  padding: 6px 10px;
  border-radius: 6px;
}
.canvas-zoom-control button:hover { background: var(--ink-10); color: var(--ink); }

#zoomLabel {
  font-size: 12px;
  min-width: 44px;
}

.canvas-margin-control {
  display: flex;
  align-items: center;
  gap: 6px;
}

.canvas-margin-control label {
  font-size: 12px;
  color: var(--ink-50);
}

.canvas-margin-control input {
  width: 52px;
  border: 1px solid var(--ink-15);
  border-radius: 8px;
  padding: 5px 7px;
  font-size: 12px;
  background: var(--bg);
}

.canvas-export-control {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ---- Multi-canvas tab bar ---- */

.canvas-tabs {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-bottom: 1px solid var(--ink-10);
  overflow-x: auto;
}

.canvas-tabs-list {
  display: flex;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
}

.canvas-tab {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid transparent;
  border-radius: var(--radius-full);
  padding: 5px 12px;
  font-size: 12px;
  color: var(--ink-60);
  white-space: nowrap;
}
.canvas-tab:hover { background: var(--ink-10); color: var(--ink); }
.canvas-tab.active {
  background: var(--ink);
  color: var(--bg);
}

#addCanvasTabBtn {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px dashed var(--ink-15);
  border-radius: 50%;
  color: var(--ink-50);
  font-size: 14px;
}
#addCanvasTabBtn:hover { border-color: var(--ink-40); color: var(--ink); }

/* ---- Edge-distance readout ---- */

.edge-distance-readout {
  font-size: 12px;
  color: var(--ink-60);
  font-variant-numeric: tabular-nums;
  line-height: 1.6;
}

.canvas-viewport {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  background: var(--ink-10);
}

.canvas-viewport canvas {
  display: block;
}

.rotation-angle-readout,
.frame-size-readout {
  position: absolute;
  z-index: 24;
  transform: translate(-50%, -100%);
  padding: 4px 8px;
  border: 1px solid var(--ink-15);
  border-radius: var(--radius-full);
  background: rgba(253, 253, 252, 0.96);
  color: var(--ink);
  box-shadow: 0 3px 12px rgba(20, 19, 18, 0.1);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  pointer-events: none;
}
.rotation-angle-readout.inside-frame { transform: translate(-50%, -50%); }

.canvas-hint {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 12px;
  color: var(--ink-40);
  background: var(--bg);
  border: 1px solid var(--ink-10);
  border-radius: var(--radius-full);
  padding: 6px 12px 6px 14px;
  pointer-events: auto;
}

.hint-mobile { display: none; }

.canvas-hint-close {
  position: static;
  display: inline;
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink-50);
  font: inherit;
  font-size: 17px;
  line-height: 1;
}

.canvas-hint-close:hover,
.canvas-hint-close:focus-visible { background: transparent; color: var(--ink); }

.canvas-welcome {
  position: absolute;
  z-index: 18;
  top: 50%;
  left: 50%;
  width: min(360px, calc(100% - 48px));
  transform: translate(-50%, -50%);
  padding: 22px 46px 22px 22px;
  border: 1px solid var(--ink-10);
  border-radius: 16px;
  background: rgba(253, 253, 252, 0.96);
  box-shadow: 0 16px 44px rgba(20, 19, 18, 0.12);
}
.canvas-welcome h1 { margin: 0 0 8px; font-size: 18px; font-weight: 500; }
.canvas-welcome p { margin: 0; color: var(--ink-60); font-size: 14px; line-height: 1.55; }
.canvas-welcome-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ink-50);
  font-size: 20px;
}
.canvas-welcome-close:hover { background: var(--ink-10); color: var(--ink); }

@media (hover: none), (pointer: coarse) {
  .upper-canvas { touch-action: none; }
  button, .dash-saved-item, .site-nav-dropdown a { min-height: 44px; }
  .sidebar-tools-row button { width: 44px; height: 44px; }
  .dash-saved-item-actions { display: flex; }
  .dash-saved-item-row .dash-saved-item { padding-right: 116px; }
  .dash-saved-item-actions button { width: 34px; height: 34px; }
  .canvas-tab-actions button { width: 32px; height: 32px; }
}

@media (max-width: 767px) {
  .dash-sidebar {
    width: min(88vw, 340px);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .dash-tuck-tab {
    top: auto;
    right: max(12px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    transform: none;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--ink);
    color: var(--bg);
    box-shadow: 0 8px 24px rgba(20, 19, 18, 0.2);
  }
  .dash-tuck-tab.open { right: calc(min(88vw, 340px) + 12px); }
  .canvas-topbar-floating {
    top: max(10px, env(safe-area-inset-top));
    right: 10px;
    padding: 4px 6px;
    gap: 4px;
  }
  .canvas-zoom-control button { min-width: 40px; min-height: 40px; padding: 6px; }
  #zoomLabel { min-width: 48px; }
  .canvas-hint {
    bottom: max(76px, calc(env(safe-area-inset-bottom) + 62px));
    width: calc(100% - 40px);
    text-align: center;
    white-space: normal;
  }
  .canvas-hint-close { display: inline; }
  .hint-desktop { display: none; }
  .hint-mobile { display: inline; }
  .canvas-welcome { top: 42%; }
  .sidebar-scroll-body { overscroll-behavior: contain; }
  body.drawer-open { overflow: hidden; }
}

@media (max-width: 380px) {
  .canvas-topbar-floating { left: 10px; right: auto; }
  .canvas-zoom-control #zoomFitBtn { display: none; }
}

/* ---- Sidebar contents: tools row + text design (docked in .dash-sidebar) ---- */

.sidebar-tools-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin-bottom: 8px;
}

.sidebar-tool-section {
  grid-column: 1 / -1;
  margin: 10px 3px 1px;
  color: var(--ink-40);
  font-size: 9px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sidebar-tool-section:first-child {
  margin-top: 0;
}

.sidebar-tools-row button {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  min-width: 0;
  height: 52px;
  padding: 5px 3px 7px;
  background: none;
  border: none;
  border-radius: 9px;
  color: var(--ink-60);
  font-size: 14px;
  font-weight: 500;
}
.sidebar-tools-row button::before {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color: var(--ink-50);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#toolFrame::before { content: 'Frame'; }
#toolFrameMargins::before { content: 'Margins'; }
#toolImportPdf::before { content: 'PDF'; }
#toolImportPdfEditable::before { content: 'Edit PDF'; }
#toolImportPdf,
#toolImportPdfEditable { display: none; }
#toolAddText::before { content: 'Add text'; }
#toolMultiSelect::before { content: 'Select'; }
#toolLock::before { content: 'Lock'; }
#toolFont::before { content: 'Font'; }
#toolFontSize::before { content: 'Size'; }
#toolAlignment::before { content: 'Align'; }
#toolWeightStyle::before { content: 'Style'; }
#toolLineSpacing::before { content: 'Line space'; }
#toolTextSpacing::before { content: 'Letter space'; }
#toolBullets::before { content: 'Bullets'; }
#toolHorizontalLine::before { content: 'Divider'; }
#toolTextColor::before { content: 'Text colour'; }
#toolHighlight::before { content: 'Highlight'; }
#toolGroup::before { content: 'Group'; }
#toolUngroup::before { content: 'Ungroup'; }
#toolUndo::before { content: 'Undo'; }
#toolRedo::before { content: 'Redo'; }
#toolDuplicate::before { content: 'Duplicate'; }
#toolDelete::before { content: 'Delete'; }
#toolBackground::before { content: 'Background'; }
#toolExport::before { content: 'Export'; }
#toolLearn::before { content: 'Learn'; }
.sidebar-tools-row button:hover {
  background: var(--ink-10);
  color: var(--ink);
}
.sidebar-tools-row button[aria-expanded="true"] {
  background: var(--ink);
  color: var(--bg);
}
.sidebar-tools-row button[aria-pressed="true"] {
  background: var(--ink);
  color: var(--bg);
}
.sidebar-tools-row button[aria-expanded="true"]::before,
.sidebar-tools-row button[aria-pressed="true"]::before {
  color: currentColor;
  opacity: 0.72;
}
.sidebar-tools-row .text-design-tool {
  font-size: 13px;
  letter-spacing: -0.02em;
}

/* ---- Guided SandSpace learning tour ---- */
.learn-tour-backdrop {
  position: fixed;
  inset: 0;
  z-index: 5000;
  background: rgba(29, 27, 25, 0.28);
  pointer-events: auto;
}

.learn-tour-target {
  position: relative;
  z-index: 5002 !important;
  background: var(--bg) !important;
  color: var(--ink) !important;
  box-shadow: 0 0 0 3px var(--bg), 0 0 0 6px #b56848, 0 12px 28px rgba(29, 27, 25, 0.22) !important;
}

.learn-tour-popover {
  position: fixed;
  z-index: 5003;
  width: min(340px, calc(100vw - 28px));
  padding: 20px;
  border: 1px solid var(--ink-10);
  border-radius: 18px;
  background: var(--bg);
  color: var(--ink);
  box-shadow: 0 20px 55px rgba(29, 27, 25, 0.2);
}

.learn-tour-close {
  position: absolute;
  top: 10px;
  right: 11px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ink-50);
  font-size: 22px;
  line-height: 1;
}

.learn-tour-close:hover { background: var(--ink-10); color: var(--ink); }
.learn-tour-kicker { margin: 0 38px 7px 0; color: #a45d40; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.learn-tour-title { margin: 0 34px 8px 0; font-size: 21px; font-weight: 500; line-height: 1.2; }
.learn-tour-copy { margin: 0; color: var(--ink-60); font-size: 14px; line-height: 1.55; }
.learn-tour-progress-track { height: 4px; margin: 18px 0 7px; overflow: hidden; border-radius: 99px; background: var(--ink-10); }
.learn-tour-progress-bar { height: 100%; width: 0; border-radius: inherit; background: #b56848; transition: width 180ms ease; }
.learn-tour-progress-text { margin: 0; color: var(--ink-50); font-size: 11px; }
.learn-tour-actions { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; }
.learn-tour-actions button { min-width: 88px; min-height: 40px; padding: 8px 16px; border: 1px solid var(--ink-10); border-radius: 999px; background: transparent; color: var(--ink); }
.learn-tour-actions .learn-tour-next { margin-left: auto; border-color: var(--ink); background: var(--ink); color: var(--bg); }
.learn-tour-actions button:disabled { visibility: hidden; }
body.learn-tour-active #canvasTools > button { pointer-events: none; }
body.learn-tour-active .dash-sidebar { z-index: 5001; }

@media (max-width: 767px) {
  .learn-tour-popover {
    left: 14px !important;
    right: 14px;
    bottom: 16px;
    top: auto !important;
    width: auto;
    max-height: min(48vh, 430px);
    overflow-y: auto;
  }
}

.sidebar-divider {
  height: 1px;
  background: var(--ink-10);
  margin: 12px 0;
}

.sidebar-heading {
  margin-bottom: 10px !important;
}

.frame-picker-dropdown,
.sidebar-panel {
  position: relative;
  margin-top: 10px;
  width: 100%;
  background: var(--ink-4, var(--bg));
  border: 1px solid var(--ink-10);
  border-radius: 12px;
  padding: 12px;
  box-sizing: border-box;
}

.frame-picker-dropdown select {
  width: 100%;
  border: 1px solid var(--ink-15);
  border-radius: 8px;
  padding: 6px 8px;
  font-size: 12px;
  background: var(--bg);
  margin-bottom: 8px;
}

/* ---- Canvas tabs: close / duplicate ---- */

.canvas-tab {
  position: relative;
  padding-right: 46px;
}

.canvas-tab-actions {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 2px;
}

.canvas-tab-actions button {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: 4px;
  font-size: 11px;
  color: inherit;
  opacity: 0.7;
}
.canvas-tab-actions button:hover { opacity: 1; background: rgba(255, 255, 255, 0.15); }
.canvas-tab:not(.active) .canvas-tab-actions button:hover { background: var(--ink-15); }

.canvas-tab-rename-input {
  width: 90px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 6px;
  padding: 2px 6px;
  font-size: 12px;
  color: inherit;
}
.canvas-tab:not(.active) .canvas-tab-rename-input {
  background: var(--bg);
  border-color: var(--ink-15);
  color: var(--ink);
}

.canvas-tab.primary {
  padding-right: 26px;
}
.canvas-tab.primary .canvas-tab-actions button:first-child {
  display: none; /* the permanent default canvas can't be closed */
}

.canvas-tab.dragging { opacity: 0.4; }
.canvas-tab.drag-over { border-left: 2px solid var(--ink); }

/* ---- Text design section (inside the sidebar) ---- */

#propertiesPanel .option-group { margin-bottom: 14px; }
#propertiesPanel .option-group:last-child { margin-bottom: 0; }
#propertiesPanel .chip-row { gap: 6px; }
#propertiesPanel .chip { font-size: 11px; padding: 5px 10px; }

.custom-value-input {
  width: 100%;
  margin-top: 6px;
  border: 1px solid var(--ink-15);
  border-radius: 8px;
  padding: 6px 8px;
  font-size: 12px;
  background: var(--bg);
  color: var(--ink);
}

.frame-spacing-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  color: var(--ink-60);
}
.frame-spacing-grid span { display: flex; align-items: center; gap: 6px; }
.frame-spacing-grid span > span:nth-child(2) { flex: 1; }
.frame-spacing-lock {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
}
.frame-spacing-lock::after {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid var(--ink-40);
  background: transparent;
  transition: background-color 0.1s ease, border-color 0.1s ease;
}
.frame-spacing-lock.active::after {
  background: var(--ink);
  border-color: var(--ink);
}
.frame-spacing-lock:hover::after { border-color: var(--ink); }
.frame-spacing-input {
  width: 50px;
  border: 1px solid var(--ink-15);
  border-radius: 6px;
  padding: 3px 6px;
  font-size: 12px;
  background: var(--bg);
  color: var(--ink);
  text-align: right;
}

#propertiesPanel .usage-note {
  font-size: 12px;
  color: var(--ink-40);
  line-height: 1.5;
  margin: 0;
}

/* ---- Font picker ---- */

.font-picker-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: 1px solid var(--ink-15);
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 12px;
  color: var(--ink);
}
.font-picker-toggle:hover { border-color: var(--ink-40); }

.font-picker-chevron {
  color: var(--ink-40);
  font-size: 12px;
}

.font-picker-dropdown {
  position: relative;
  margin-top: 6px;
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid var(--ink-10);
  border-radius: 10px;
  padding: 6px;
}

.font-picker-category {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ink-40);
  padding: 6px 8px 2px;
}

.font-picker-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  border-radius: 7px;
  padding: 7px 8px;
  font-size: 14px;
  color: var(--ink);
  text-align: left;
}
.font-picker-item:hover { background: var(--ink-10); }
.font-picker-item.active { background: var(--ink-10); font-weight: 600; }

.font-picker-item.locked {
  color: var(--ink-40);
}

.font-picker-lock {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-40);
  border: 1px solid var(--ink-15);
  border-radius: var(--radius-full);
  padding: 2px 6px;
  flex-shrink: 0;
  margin-left: 8px;
}

@media (max-width: 767px) {
  .canvas-topbar { gap: 10px; padding: 10px 12px; }
  .canvas-hint { display: none; }
}

/* ---- Export preview modal ---- */

.export-preview-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(20, 19, 18, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
}

.export-preview-modal {
  background: var(--bg);
  border-radius: 16px;
  padding: 20px;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

.export-preview-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ink-10);
  border-radius: 10px;
}

.export-preview-body img {
  max-width: 100%;
  max-height: 70vh;
  display: block;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.export-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 14px;
  padding: 16px;
  max-height: 70vh;
  overflow-y: auto;
}
.export-preview-grid img {
  width: 100%;
  height: auto;
  max-height: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  border-radius: 4px;
}

.export-preview-body iframe {
  width: 60vw;
  height: 70vh;
  border: none;
  background: white;
}

.export-preview-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* Final responsive safeguards live at the end so they win over legacy rules. */
.screen,
.center-screen { min-height: 100dvh; }
.blank-textarea,
.dash-textarea { height: 100dvh; }
.canvas-page { height: 100dvh; }

@media (max-width: 767px) {
  .canvas-hint { display: flex; }
  .export-preview-overlay { padding: 12px; }
  .export-preview-modal { width: 100%; max-width: 100%; max-height: calc(100dvh - 24px); padding: 14px; }
  .export-preview-body iframe { width: 100%; height: 62dvh; }
  .export-preview-actions button { flex: 1; min-height: 44px; }

  /* The compatibility toolbar replaces the React quick-tools drawer in the
     same left-hand position while this screen is being migrated. */
  body.react-embedded.react-legacy-tools-open .dash-sidebar {
    position: absolute;
    inset: 0 auto 0 0;
    width: min(84vw, 260px);
    transform: none !important;
    box-shadow: 8px 0 24px rgba(20, 19, 18, 0.14);
  }
}
