.scan-fab{position:fixed;right:24px;bottom:calc(110px + env(safe-area-inset-bottom));z-index:21;display:flex;gap:10px;align-items:center;border:1px solid #18634725;background:#f4e7be;color:#25543e;border-radius:24px;padding:12px 17px;min-height:54px;cursor:pointer;box-shadow:0 5px 10px #163e3018,0 12px 28px #163e3024;font:700 12px Arial}.scan-fab svg{width:27px;height:25px}.scan-fab span{display:flex;gap:5px;align-items:baseline}.scan-fab em{font:italic 700 16px Fraunces,Georgia,serif;transform:rotate(-3deg)}.scan-dialog{padding:0;border:1px solid #25543e18;border-radius:28px;width:calc(100% - 24px);max-width:680px;max-height:90svh;background:#faf3df;color:#334b3e;box-shadow:0 20px 70px #102b3355;font:16px/1.65 Arial,Helvetica,sans-serif}.scan-dialog::backdrop{background:#102b3380;backdrop-filter:blur(5px)}.scan-inner{padding:34px;position:relative;background-image:linear-gradient(#faf3dfea,#faf3dfea),url('/assets/pattern-facts.svg');background-size:auto,400px}.scan-close{position:absolute;right:13px;top:13px;width:44px;height:44px;border:0;border-radius:50%;background:#fffaf0;color:#334b3e;font-size:27px;cursor:pointer}.scan-eyebrow{font-size:10px!important;letter-spacing:2px;margin:14px 40px 10px 0}.scan-dialog h2{font-size:35px;line-height:1.2;margin:15px 0;letter-spacing:-1px}.scan-dialog h2 em{font-family:Fraunces,Georgia,serif}.scan-dialog p{font-size:14px;line-height:1.7}.scan-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.scan-dialog button:not(.scan-close){min-height:46px;border:1px solid #334b3e30;border-radius:24px;padding:11px 17px;background:#fffaf0;color:#334b3e;font:700 14px Arial;cursor:pointer}.scan-dialog button.scan-primary{background:#25543e;color:#fffaf0;border-color:#25543e;display:inline-flex;align-items:center;justify-content:center;gap:9px}.scan-primary svg{width:24px;height:22px}.scan-dialog button:disabled{opacity:.55;cursor:wait}.scan-dialog .scan-privacy,.scan-dialog .scan-sources{font-size:12px}.scan-dialog a{color:inherit;text-underline-offset:3px}.scan-dialog #scan-preview{max-width:100%;width:100%;max-height:220px;object-fit:contain;background:#fffaf0;border-radius:15px;margin-top:10px}.scan-dialog #scan-status{font-weight:bold;min-height:20px}.scan-dialog #scan-error{background:#f7e1d5;padding:15px;border-radius:12px;color:#703c29}.scan-dialog #scan-review{border-top:1px solid #334b3e22;padding-top:22px;margin-top:20px}.scan-dialog #scan-review label{display:block;font-size:17px;font-weight:bold;color:inherit;margin:0;text-align:left;letter-spacing:normal;line-height:1.5}.scan-dialog textarea{width:100%;height:auto;min-height:160px;box-sizing:border-box;border:1px solid #334b3e55;border-radius:14px;padding:14px;font:16px/1.6 Arial;color:#334b3e;background:#fffdf6;resize:vertical;margin-bottom:15px}.scan-dialog .scan-text-button{box-shadow:none;border:0!important;background:transparent!important;text-decoration:underline;text-underline-offset:4px;margin-top:10px}.scan-dialog h3{font:italic 700 28px/1.3 Fraunces,Georgia,serif;margin:30px 0 15px}.scan-boundary{background:#ece6ce;padding:17px;border-radius:15px}.scan-finding{background:#fffdf6;border:1px solid #334b3e18;border-radius:17px;padding:18px;margin:13px 0;box-shadow:0 5px 13px #334b3e08}.scan-finding h4{font-size:14px;margin:0;color:#715027}.scan-finding blockquote{margin:12px 0;border-left:2px solid #ad9564;padding-left:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.scan-finding p{margin-bottom:0}.scan-ask{margin-top:22px;background:#e2e9d6;border-radius:17px;padding:20px}.scan-ask p{margin-bottom:0}.scan-dialog :focus-visible{outline:3px solid #a77c33;outline-offset:4px}.scan-dialog [hidden]{display:none!important}body main,.browsing main,.facts-page main,body.submission-page main{padding-bottom:210px}#personal-status{bottom:180px}@media(max-width:600px){.scan-fab{right:16px;padding:11px 14px;bottom:calc(108px + env(safe-area-inset-bottom))}.scan-fab em{font-size:14px}.scan-inner{padding:26px 20px}.scan-dialog h2{font-size:29px}.scan-dialog{max-height:92svh}}@media(prefers-reduced-motion:reduce){.scan-fab{transition:none}}

/* Camera belongs to the dock; absolute positioning preserves its four equal columns. */
.app-nav{padding-top:34px;overflow:visible}
.app-nav .scan-fab{position:absolute;left:50%;right:auto;top:-35px;bottom:auto;transform:translateX(-50%);width:64px;height:64px;min-height:64px;padding:15px;display:flex;align-items:center;justify-content:center;border:4px solid #fffef5;border-radius:50%;background:#186347;color:#f6f5da;box-shadow:0 4px 8px #123b3020,0 10px 22px #123b3026;z-index:2}
.app-nav .scan-fab svg{width:29px;height:26px;flex-shrink:0}
.app-nav .scan-fab>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.app-nav .scan-fab:focus-visible{outline:3px solid #c49445;outline-offset:4px}
@media(hover:hover){.app-nav .scan-fab:hover{transform:translate(-50%,-2px);background:#12533b;box-shadow:0 6px 12px #123b3026,0 13px 26px #123b3030}}
.app-nav .scan-fab:active{transform:translate(-50%,1px)}
@media(prefers-reduced-motion:reduce){.app-nav .scan-fab:hover,.app-nav .scan-fab:active{transform:translateX(-50%)}}
/* Dock spacing: one consistent icon row and one unbroken label row. */
.app-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:4px;padding:24px 8px 10px;border-radius:28px;width:calc(100% - 32px);max-width:540px;bottom:max(12px,env(safe-area-inset-bottom))}
.app-nav>a{display:grid;grid-template-rows:24px 18px;align-content:center;justify-items:center;align-items:center;gap:7px;min-height:66px;padding:8px 2px;border-radius:20px;font:11px/18px Arial,Helvetica,sans-serif;text-align:center;min-width:0}
.app-nav>a>svg,.app-nav>a>svg.wheat{display:block;width:24px;height:24px;margin:0;flex-shrink:0}
.app-nav>a>span:not(.nav-count){display:block;min-height:0;height:18px;line-height:18px;white-space:nowrap;margin:0}
.app-nav>a[aria-current=page]{font-weight:700}
.app-nav .scan-fab{width:60px;height:60px;min-height:60px;top:-37px;padding:13px}
.app-nav .nav-count{top:2px;right:8px;min-width:16px;height:16px;line-height:16px;font-size:9px}
@media(max-width:360px){.app-nav{width:calc(100% - 24px);gap:2px;padding-left:6px;padding-right:6px}.app-nav>a{font-size:10px}}

/* Keep the landing page focused on choosing a city. */
body.city-app:not(.browsing) .app-nav{display:none}
/* The caption is part of the camera button, including its clickable area. */
.app-nav .scan-fab>.scan-caption{position:absolute;left:calc(100% + 2px);top:30px;display:flex;align-items:center;gap:2px;width:auto;height:24px;margin:0;padding:0;overflow:visible;clip-path:none;white-space:nowrap;color:#186347;transform:rotate(-4deg);transform-origin:left center;cursor:pointer}
.app-nav .scan-caption em{font:italic 700 13px/20px Fraunces,Georgia,serif;letter-spacing:-.3px}
.app-nav .scan-caption>svg{width:16px;height:16px;flex-shrink:0}
.app-nav .scan-fab:focus-visible>.scan-caption{outline:2px solid #186347;outline-offset:2px;border-radius:5px}
@media(max-width:360px){.app-nav .scan-caption em{font-size:11px}.app-nav .scan-caption>svg{width:13px}.app-nav .scan-fab>.scan-caption{left:100%;gap:1px}}
/* Let the handwritten caption rise above the dock without changing its layout. */
.app-nav .scan-fab>.scan-caption{top:21px;height:30px}
.app-nav .scan-caption em{font-size:17px;line-height:26px;letter-spacing:-.4px;text-shadow:0 1px 3px #fffcefaa}
@media(max-width:360px){.app-nav .scan-caption em{font-size:14px;line-height:24px}.app-nav .scan-fab>.scan-caption{top:23px}}
