/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */
.nav-logo {
    width: 32px;
    height: 32px;
}

/* Theme toggle button */
.theme-toggle {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    color: inherit !important;
    padding: var(--pico-nav-link-spacing-vertical)
        var(--pico-nav-link-spacing-horizontal) !important;
    margin: 0 !important;
    line-height: 1;
    cursor: pointer;
}

.theme-toggle .icon-moon {
    display: none;
}
html[data-theme="light"] .theme-toggle .icon-sun {
    display: none;
}
html[data-theme="light"] .theme-toggle .icon-moon {
    display: inline;
}

aside > nav li a {
    display: block;
    font-family: var(--pico-font-family-header);
    text-transform: uppercase;
    padding: calc(var(--pico-nav-link-spacing-vertical) * 1.5)
        var(--pico-nav-link-spacing-horizontal);
    border-radius: var(--pico-border-radius);
    border-right: 4px solid transparent;
    transition:
        background-color var(--pico-transition),
        color var(--pico-transition);
}

aside > nav li a:hover,
aside > nav li a:focus {
    background-color: var(--pico-dropdown-hover-background-color);
    color: var(--pico-dropdown-hover-color);
    text-decoration: none;
}

aside > nav li a.active {
    color: var(--pico-dropdown-hover-color);
    text-decoration: none;
}

table tbody tr {
    transition: background-color var(--pico-transition);
}

table tbody tr:hover td,
table tbody tr:hover th {
    background-color: var(--pico-dropdown-hover-background-color) !important;
}

table tbody tr td:first-child {
    border-left: 4px solid transparent;
    transition: border-color var(--pico-transition);
}

table tbody tr:hover td:first-child {
    border-left-color: var(--pico-primary-hover);
}

.grid.grid-sidebar {
    display: grid;
    gap: var(--pico-spacing);
}

/* Inside the Hotwire Native app the account sidebar is not rendered on
   most pages, so the content must take the full width at any size. */
body.hotwire-native .grid.grid-sidebar {
    grid-template-columns: 1fr;
}

.toast-container {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: min(24rem, calc(100vw - 2rem));
    pointer-events: none;
}

.toast {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: var(--pico-spacing);
    border-radius: var(--pico-border-radius);
    pointer-events: auto;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.toast-close {
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.25rem;
    line-height: 1;
    padding: 0;
    opacity: 0.7;
    color: inherit;
    margin: 0;
    width: auto;
}

.toast-close:hover {
    opacity: 1;
}

.toast-success {
    border: 1px solid var(--pico-form-element-valid-border-color);
    background-color: var(
        --pico-card-background-color,
        var(--pico-background-color)
    );
    color: var(--pico-form-element-valid-border-color);
}

.toast-error {
    border: 1px solid var(--pico-form-element-invalid-border-color);
    background-color: var(
        --pico-card-background-color,
        var(--pico-background-color)
    );
    color: var(--pico-form-element-invalid-border-color);
}

@keyframes toast-fade-out {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-0.5rem);
    }
}

.toast-hiding {
    animation: toast-fade-out 0.3s ease-in forwards;
}

[role="group"] > form {
    display: contents;
}

/* ── Page header (index + show toolbars) ── */
.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.page-header > h2,
.page-header > hgroup {
    margin: 0;
}

/* Keep the Pico role="group" action bar from stretching full width */
.page-header > [role="group"] {
    width: auto;
}

/* The GPX show toolbar carries up to six buttons; keep it in compact icon form
   until the viewport is wide enough for full text labels, so the connected
   button group never wraps at in-between desktop widths. Below 769px the global
   utilities already collapse it to icons. */
@media (min-width: 769px) and (max-width: 1280px) {
    [role="group"].actions-compact .hide-on-mobile {
        display: none;
    }

    [role="group"].actions-compact svg.hide-on-desktop {
        display: inline;
    }
}

/* Compact inline-list action buttons (Remove / Revoke / Leave, etc.) */
.btn-sm {
    padding: 0.2rem 0.6rem;
    font-size: 0.8rem;
}

/* ── Footer ── */
.site-footer {
    margin-top: 4rem;
    border-top: var(--pico-border-width) solid var(--pico-muted-border-color);
    padding: 2.5rem 0 1.5rem;
    color: var(--pico-muted-color);
}

.site-footer-inner {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.site-footer-brand {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.site-footer-brand a {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--pico-color);
}

.site-footer-brand p {
    margin: 0;
    font-size: var(--pico-small-font-size);
}

.site-footer-nav {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
}

.site-footer-nav > div {
    text-align: right;
}

.site-footer-nav ul {
    list-style: none;
    padding: 0;
    margin: 0.4rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    align-items: flex-end;
}

.site-footer-nav li {
    padding: 0 !important;
}

.site-footer-nav a {
    font-size: var(--pico-small-font-size);
    color: var(--pico-muted-color);
    text-decoration: none;
    padding: 0 !important;
    margin: 0 !important;
}

.site-footer-nav a:hover {
    color: var(--pico-color);
}

.site-footer-bottom {
    border-top: var(--pico-border-width) solid var(--pico-muted-border-color);
    padding-top: 1rem;
}

/* ── Hamburger menu ── */
.nav-hamburger {
    display: none;
}

.nav-hamburger details > summary::after,
.nav-hamburger details > summary::marker,
.nav-hamburger details > summary::-webkit-details-marker {
    display: none;
    content: none;
}

.nav-hamburger details > summary {
    list-style: none;
    display: flex;
    align-items: center;
}

@media (max-width: 768px) {
    .nav-desktop-link {
        display: none;
    }
    .nav-hamburger {
        display: flex;
        align-items: center;
    }
}

/* ── Landing page ── */
.text-selection {
    background-color: var(--pico-primary-background);
    color: var(--pico-primary-inverse);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    padding: 0.05em 0.15em;
    border-radius: 2px;
}

/* Topo-line pattern shared by the landing hero and the public-profile
   fallback cover. The triple selector mirrors the map-popup theming: explicit
   theme attribute wins, system preference covers html without one. */
:root {
    --topo-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='420'%3E%3Cg fill='none' stroke='%23FFC107' stroke-width='1' opacity='0.08' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M259 124 259 124'/%3E%3Cpath d='M532 164 532 164'/%3E%3Cpath d='M260 116 260 116'/%3E%3Cpath d='M555 152 555 152'/%3E%3Cpath d='M499 388 499 388'/%3E%3Cpath d='M660 0 675 12 678 20 672 28 660 32 648 30 620 21 600 17 508 9 475 4'/%3E%3Cpath d='M230 108 230 108'/%3E%3Cpath d='M593 132 593 132'/%3E%3Cpath d='M445 376 516 374 544 376 571 380 609 392 660 420'/%3E%3Cpath d='M691 0 697 4 703 12 704 20 701 28 695 36 684 45 672 52 660 54 648 52 616 33 592 25 560 19 487 12 452 4'/%3E%3Cpath d='M245 100 245 100'/%3E%3Cpath d='M590 124 590 124'/%3E%3Cpath d='M352 348 376 350 412 361 432 365 536 371 580 377 619 388 691 420'/%3E%3Cpath d='M715 0 720 8 721 16 718 24 711 36 700 48 684 61 664 73 652 78 644 76 640 72 627 56 613 44 588 32 556 24 468 14 432 4'/%3E%3Cpath d='M229 96 229 96'/%3E%3Cpath d='M623 104 623 104'/%3E%3Cpath d='M340 340 360 337 376 338 392 342 428 355 448 359 552 368 592 374 626 384 692 408 715 420'/%3E%3Cpath d='M733 0 735 12 729 28 713 48 669 92 661 108 651 148 644 160 634 172 604 192 551 216 492 236 472 240 456 241 444 240 434 236 424 229 417 220 410 208 405 192 405 184 409 176 428 166 528 134 582 112 603 100 612 92 617 84 618 72 613 60 604 50 592 41 576 35 544 28 456 17 435 12 413 4'/%3E%3Cpath d='M201 92 201 92'/%3E%3Cpath d='M344 332 364 329 384 330 400 335 436 349 456 355 484 359 564 365 603 372 708 404 725 412 733 420'/%3E%3Cpath d='M763 0 759 12 749 28 693 96 684 112 670 152 662 164 649 176 615 196 548 224 480 247 460 252 444 254 428 251 417 244 408 234 385 200 376 192 368 189 348 186 268 190 229 188 210 184 192 177 140 145 116 137 84 134 16 138 4 136 4 132 7 128 15 120 38 104 59 92 84 81 104 74 124 70 140 68 212 77 296 81 328 87 341 92 354 100 367 112 392 142 400 148 412 151 428 152 452 148 484 141 516 130 559 112 576 101 585 92 591 84 593 72 591 64 584 55 568 45 548 38 520 33 436 24 412 18 375 4'/%3E%3Cpath d='M360 316 380 313 396 315 408 319 444 338 468 346 500 352 572 359 606 364 738 396 757 404 763 412 763 420'/%3E%3Cpath d='M776 0 758 28 705 92 694 112 679 156 670 168 661 176 633 192 577 216 492 248 448 260 428 261 416 256 408 247 380 207 368 198 356 194 332 191 252 193 216 189 187 180 132 149 104 142 80 141 56 143 28 147 0 155'/%3E%3Cpath d='M123 60 140 57 156 57 220 70 296 76 328 81 344 86 359 96 400 137 416 144 432 145 460 142 496 133 532 120 555 108 571 96 580 84 582 72 580 64 576 59'/%3E%3Cpath d='M900 155 872 166 816 196 796 200 788 199 782 196 780 192 783 184 797 172 828 156'/%3E%3Cpath d='M367 308 388 304 404 306 412 309 448 333 465 340 484 345 606 360 696 381 760 392 771 396 776 400 779 408 776 420'/%3E%3Cpath d='M9 328 28 325 44 326 52 328 59 332 62 340 56 348 40 356 21 360 0 362'/%3E%3Cpath d='M788 0 715 92 703 116 692 156 684 168 675 176 654 188 616 204 464 262 428 274 420 275 412 271 387 228 379 216 368 206 352 199 324 196 244 196 212 192 184 183 132 155 116 150 100 147 76 147 52 149 28 155 0 164'/%3E%3Cpath d='M244 8 208 11 192 9'/%3E%3Cpath d='M147 44 160 42 172 44 208 58 232 64 312 71 340 77 352 83 364 91 395 124 406 132 420 138 440 140 476 135 520 121 552 104 562 96 569 88 572 80 572 72 569 64 561 56 540 47 508 40'/%3E%3Cpath d='M900 164 876 175 820 206 804 212 788 215 772 213 763 208 756 200 754 192 756 185 760 180 770 172 784 164'/%3E%3Cpath d='M394 292 404 290 412 291 446 324 464 334 488 342 520 347 612 357 716 378 796 386 802 388 803 392 801 400 788 420'/%3E%3Cpath d='M24 316 48 316 68 321 81 332 84 340 84 344 78 352 62 360 36 366 0 372'/%3E%3Cpath d='M900 372 864 375 844 374'/%3E%3Cpath d='M796 4 741 68 721 96 712 120 709 136 708 160 706 168 703 172 682 184 542 236 465 268 450 276 441 284 437 292 438 300 444 312 458 324 473 332 492 338 524 344 612 353 700 370 744 374 776 373 804 367 820 359 866 328 882 320 900 314'/%3E%3Cpath d='M256 16 256 16'/%3E%3Cpath d='M84 152 64 153 40 157 0 171'/%3E%3Cpath d='M900 171 876 183 820 215 800 223 784 225 772 224 760 221 750 216 741 208 735 200 730 188 731 180 736 175'/%3E%3Cpath d='M7 312 28 309 44 308 72 313 86 320 96 328 103 340 104 348 100 356 84 364 48 372 0 379'/%3E%3Cpath d='M900 379 860 386 836 393 820 402 799 420'/%3E%3Cpath d='M820 2 804 15 784 36 760 64 746 84 739 100 736 112 736 124 741 132 748 137 760 139 792 134 840 118 900 89'/%3E%3Cpath d='M428 52 408 55 396 58 390 64 389 72 395 88 408 106 420 116 436 122 452 124 468 123 504 113 523 104 534 96 541 88 543 80 542 72 536 65 527 60 515 56 476 51 428 52'/%3E%3Cpath d='M60 164 28 171 0 183'/%3E%3Cpath d='M900 183 880 194 824 229 804 238 784 242 764 241 748 237 732 228 704 209 692 205 668 204 636 210 568 232 501 260 480 272 469 280 463 288 460 296 463 308 472 318 488 327 508 334 540 339 629 348 704 360 732 362 761 360 788 353 808 344 860 315 880 307 900 301'/%3E%3Cpath d='M7 300 44 297 76 300 100 309 144 339 156 342 172 343 208 339 248 330 296 314 336 297'/%3E%3Cpath d='M28 388 0 392'/%3E%3Cpath d='M900 392 856 403 840 410 822 420'/%3E%3Cpath d='M832 2 816 13 796 32 763 72 754 88 749 100 749 112 752 120 760 126 768 128 780 128 800 124 844 110 900 84'/%3E%3Cpath d='M460 56 460 56'/%3E%3Cpath d='M64 168 32 175 0 188'/%3E%3Cpath d='M896 190 824 237 804 245 784 249 764 249 745 244 729 236 700 218 684 212 660 211 624 218 556 240 502 264 484 276 475 284 471 292 470 300 475 312 485 320 500 327 518 332 552 337 636 345 700 354 732 356 760 353 784 347 804 337 856 309 876 301 900 296'/%3E%3Cpath d='M30 292 60 292 84 296 105 304 148 330 164 335 184 336 220 332 264 321 308 306 340 290'/%3E%3Cpath d='M0 296 28 292'/%3E%3Cpath d='M892 399 860 408 834 420'/%3E%3Cpath d='M840 4 824 15 808 28 780 60 769 76 764 88 762 100 764 109 772 116 780 117 792 117 808 115 848 102 900 78'/%3E%3Cpath d='M448 64 448 64'/%3E%3Cpath d='M68 172 32 180 0 194'/%3E%3Cpath d='M896 196 824 246 804 254 788 257 764 257 744 252 728 245 696 225 676 218 652 217 616 224 560 242 511 264 492 276 484 284 480 292 479 300 482 308 492 317 505 324 528 330 556 334 636 341 700 348 728 349 752 347 776 341 796 333 852 302 876 295 900 290'/%3E%3Cpath d='M16 288 56 287 88 291 111 300 156 325 172 329 188 331 224 327 264 317 304 303 336 286'/%3E%3Cpath d='M28 400 0 403'/%3E%3Cpath d='M900 403 872 410 847 420'/%3E%3Cpath d='M856 3 840 11 824 22 809 36 795 52 784 68 778 80 775 92 778 100 784 105 792 107 804 107 820 104 856 92 900 72'/%3E%3Cpath d='M452 72 452 72'/%3E%3Cpath d='M76 176 56 178 36 183 0 199'/%3E%3Cpath d='M900 199 876 216 832 251 816 260 800 265 776 267 752 263 732 256 696 234 680 226 660 223 640 223 616 228 588 235 534 256 512 268 501 276 490 288 487 296 491 308 500 316 516 323 536 328 576 333 724 343 748 341 767 336 788 327 840 298 864 290 900 284'/%3E%3Cpath d='M2 284 52 281 88 285 112 293 160 319 176 324 196 325 228 322 268 312 304 299 332 283'/%3E%3Cpath d='M888 412 862 420'/%3E%3Cpath d='M896 3 864 13 836 30 821 44 812 56 807 68 806 76 808 80 816 85 836 84 864 76 900 59'/%3E%3Cpath d='M56 188 28 196 0 212'/%3E%3Cpath d='M896 215 881 228 871 240 863 252 862 260 864 264 870 268 900 271'/%3E%3Cpath d='M616 235 616 235'/%3E%3Cpath d='M0 271 64 271 96 275 120 283 168 309 184 314 204 316 240 312 276 302 307 288 319 280 328 271'/%3E%3Cpath d='M896 12 868 20 847 32 831 48 827 56 825 64 826 68 832 72 848 71 872 64 900 50'/%3E%3Cpath d='M64 192 48 195 32 200 16 209 0 220'/%3E%3Cpath d='M900 220 886 236 881 248 881 252 884 257 889 260 900 263'/%3E%3Cpath d='M616 240 616 240'/%3E%3Cpath d='M0 263 80 267 104 270 128 279 172 304 192 309 212 311 248 306 288 293 305 284 316 276 323 268 326 260'/%3E%3Cpath d='M884 27 884 27'/%3E%3Cpath d='M52 200 39 204 23 212 7 224 0 234'/%3E%3Cpath d='M616 244 616 244'/%3E%3Cpath d='M0 250 8 255 20 257 92 261 116 265 132 272 163 292 179 300 196 305 216 306 236 304 256 300 280 292 296 284 307 276 316 265 319 256 317 248'/%3E%3Cpath d='M68 204 68 204'/%3E%3Cpath d='M600 251 600 251'/%3E%3Cpath d='M220 244 220 244'/%3E%3Cpath d='M592 264 592 264'/%3E%3Cpath d='M220 252 220 252'/%3E%3Cpath d='M596 271 596 271'/%3E%3C/g%3E%3Cg fill='none' stroke='%23FFC107' stroke-width='1.5' opacity='0.12' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M608 4 568 7 512 4'/%3E%3Cpath d='M242 112 242 112'/%3E%3Cpath d='M561 144 561 144'/%3E%3Cpath d='M496 380 540 381 577 388 596 396 608 404 615 412 617 416 615 420'/%3E%3Cpath d='M464 384 496 380'/%3E%3Cpath d='M749 0 747 12 736 32 690 84 681 96 673 112 661 148 654 160 643 172 613 192 560 216 492 240 468 245 452 247 436 245 428 242 420 236 408 221 389 188 380 181 372 179 360 179 272 187 248 187 226 184 208 179 191 172 148 141 128 131 104 125 60 122 52 120 50 116 56 108 74 96 96 87 120 81 140 80 196 84 280 85 316 89 332 95 344 101 353 108 364 119 388 154 392 158 400 161 412 161 436 157 504 138 562 116 580 106 593 96 602 84 604 76 602 64 597 56 581 44 560 36 532 31 445 20 420 14 396 4'/%3E%3Cpath d='M352 324 372 321 388 322 404 327 441 344 464 351 492 355 580 364 620 371 732 404 745 412 749 420'/%3E%3Cpath d='M808 2 788 22 762 52 743 76 733 92 726 108 723 120 724 136 728 145 736 151 748 152 784 145 836 126 900 95'/%3E%3Cpath d='M276 24 260 28 253 32 250 36 249 40 253 44 261 48 278 52 336 57 356 61 372 73 396 104 408 116 420 124 432 128 448 129 468 127 488 123 512 115 532 105 543 96 552 84 553 76 550 68 542 60 528 54 512 50 476 46 384 44 368 40 336 28 321 24 300 22 276 24'/%3E%3Cpath d='M56 159 28 166 0 177'/%3E%3Cpath d='M896 179 820 223 800 231 784 234 768 233 750 228 737 220 712 200 700 195 684 194 660 199 576 226 492 260 470 272 459 280 452 288 449 296 453 308 463 320 480 329 500 336 532 342 624 351 704 365 736 368 768 366 796 359 816 350 865 320 900 307'/%3E%3Cpath d='M18 304 52 303 80 308 102 320 132 348 140 352 152 354 184 350 236 337 292 320 340 301'/%3E%3Cpath d='M76 376 0 386'/%3E%3Cpath d='M888 388 864 393 844 400 828 408 811 420'/%3E%3Cpath d='M872 3 856 9 840 19 815 40 801 56 794 68 790 80 791 88 793 92 802 96 824 95 860 84 900 66'/%3E%3Cpath d='M468 84 468 84'/%3E%3Cpath d='M52 184 26 192 0 206'/%3E%3Cpath d='M900 206 871 228 828 271 816 277 804 279 784 278 752 273 728 263 680 234 660 228 640 228 620 231 596 236 542 256 520 268 509 276 498 288 496 296 498 304 508 314 521 320 544 326 592 330 720 336 748 332 772 324 792 312 820 289 828 285 848 282 900 278'/%3E%3Cpath d='M0 278 56 276 92 280 116 288 164 314 180 319 200 320 232 317 270 308 304 295 328 280'/%3E%3Cpath d='M56 215 56 215'/%3E%3Cpath d='M204 240 204 240'/%3E%3Cpath d='M604 256 604 256'/%3E%3C/g%3E%3C/svg%3E");
}

html[data-theme="light"] {
    --topo-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='420'%3E%3Cg fill='none' stroke='%23775500' stroke-width='1' opacity='0.12' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M259 124 259 124'/%3E%3Cpath d='M532 164 532 164'/%3E%3Cpath d='M260 116 260 116'/%3E%3Cpath d='M555 152 555 152'/%3E%3Cpath d='M499 388 499 388'/%3E%3Cpath d='M660 0 675 12 678 20 672 28 660 32 648 30 620 21 600 17 508 9 475 4'/%3E%3Cpath d='M230 108 230 108'/%3E%3Cpath d='M593 132 593 132'/%3E%3Cpath d='M445 376 516 374 544 376 571 380 609 392 660 420'/%3E%3Cpath d='M691 0 697 4 703 12 704 20 701 28 695 36 684 45 672 52 660 54 648 52 616 33 592 25 560 19 487 12 452 4'/%3E%3Cpath d='M245 100 245 100'/%3E%3Cpath d='M590 124 590 124'/%3E%3Cpath d='M352 348 376 350 412 361 432 365 536 371 580 377 619 388 691 420'/%3E%3Cpath d='M715 0 720 8 721 16 718 24 711 36 700 48 684 61 664 73 652 78 644 76 640 72 627 56 613 44 588 32 556 24 468 14 432 4'/%3E%3Cpath d='M229 96 229 96'/%3E%3Cpath d='M623 104 623 104'/%3E%3Cpath d='M340 340 360 337 376 338 392 342 428 355 448 359 552 368 592 374 626 384 692 408 715 420'/%3E%3Cpath d='M733 0 735 12 729 28 713 48 669 92 661 108 651 148 644 160 634 172 604 192 551 216 492 236 472 240 456 241 444 240 434 236 424 229 417 220 410 208 405 192 405 184 409 176 428 166 528 134 582 112 603 100 612 92 617 84 618 72 613 60 604 50 592 41 576 35 544 28 456 17 435 12 413 4'/%3E%3Cpath d='M201 92 201 92'/%3E%3Cpath d='M344 332 364 329 384 330 400 335 436 349 456 355 484 359 564 365 603 372 708 404 725 412 733 420'/%3E%3Cpath d='M763 0 759 12 749 28 693 96 684 112 670 152 662 164 649 176 615 196 548 224 480 247 460 252 444 254 428 251 417 244 408 234 385 200 376 192 368 189 348 186 268 190 229 188 210 184 192 177 140 145 116 137 84 134 16 138 4 136 4 132 7 128 15 120 38 104 59 92 84 81 104 74 124 70 140 68 212 77 296 81 328 87 341 92 354 100 367 112 392 142 400 148 412 151 428 152 452 148 484 141 516 130 559 112 576 101 585 92 591 84 593 72 591 64 584 55 568 45 548 38 520 33 436 24 412 18 375 4'/%3E%3Cpath d='M360 316 380 313 396 315 408 319 444 338 468 346 500 352 572 359 606 364 738 396 757 404 763 412 763 420'/%3E%3Cpath d='M776 0 758 28 705 92 694 112 679 156 670 168 661 176 633 192 577 216 492 248 448 260 428 261 416 256 408 247 380 207 368 198 356 194 332 191 252 193 216 189 187 180 132 149 104 142 80 141 56 143 28 147 0 155'/%3E%3Cpath d='M123 60 140 57 156 57 220 70 296 76 328 81 344 86 359 96 400 137 416 144 432 145 460 142 496 133 532 120 555 108 571 96 580 84 582 72 580 64 576 59'/%3E%3Cpath d='M900 155 872 166 816 196 796 200 788 199 782 196 780 192 783 184 797 172 828 156'/%3E%3Cpath d='M367 308 388 304 404 306 412 309 448 333 465 340 484 345 606 360 696 381 760 392 771 396 776 400 779 408 776 420'/%3E%3Cpath d='M9 328 28 325 44 326 52 328 59 332 62 340 56 348 40 356 21 360 0 362'/%3E%3Cpath d='M788 0 715 92 703 116 692 156 684 168 675 176 654 188 616 204 464 262 428 274 420 275 412 271 387 228 379 216 368 206 352 199 324 196 244 196 212 192 184 183 132 155 116 150 100 147 76 147 52 149 28 155 0 164'/%3E%3Cpath d='M244 8 208 11 192 9'/%3E%3Cpath d='M147 44 160 42 172 44 208 58 232 64 312 71 340 77 352 83 364 91 395 124 406 132 420 138 440 140 476 135 520 121 552 104 562 96 569 88 572 80 572 72 569 64 561 56 540 47 508 40'/%3E%3Cpath d='M900 164 876 175 820 206 804 212 788 215 772 213 763 208 756 200 754 192 756 185 760 180 770 172 784 164'/%3E%3Cpath d='M394 292 404 290 412 291 446 324 464 334 488 342 520 347 612 357 716 378 796 386 802 388 803 392 801 400 788 420'/%3E%3Cpath d='M24 316 48 316 68 321 81 332 84 340 84 344 78 352 62 360 36 366 0 372'/%3E%3Cpath d='M900 372 864 375 844 374'/%3E%3Cpath d='M796 4 741 68 721 96 712 120 709 136 708 160 706 168 703 172 682 184 542 236 465 268 450 276 441 284 437 292 438 300 444 312 458 324 473 332 492 338 524 344 612 353 700 370 744 374 776 373 804 367 820 359 866 328 882 320 900 314'/%3E%3Cpath d='M256 16 256 16'/%3E%3Cpath d='M84 152 64 153 40 157 0 171'/%3E%3Cpath d='M900 171 876 183 820 215 800 223 784 225 772 224 760 221 750 216 741 208 735 200 730 188 731 180 736 175'/%3E%3Cpath d='M7 312 28 309 44 308 72 313 86 320 96 328 103 340 104 348 100 356 84 364 48 372 0 379'/%3E%3Cpath d='M900 379 860 386 836 393 820 402 799 420'/%3E%3Cpath d='M820 2 804 15 784 36 760 64 746 84 739 100 736 112 736 124 741 132 748 137 760 139 792 134 840 118 900 89'/%3E%3Cpath d='M428 52 408 55 396 58 390 64 389 72 395 88 408 106 420 116 436 122 452 124 468 123 504 113 523 104 534 96 541 88 543 80 542 72 536 65 527 60 515 56 476 51 428 52'/%3E%3Cpath d='M60 164 28 171 0 183'/%3E%3Cpath d='M900 183 880 194 824 229 804 238 784 242 764 241 748 237 732 228 704 209 692 205 668 204 636 210 568 232 501 260 480 272 469 280 463 288 460 296 463 308 472 318 488 327 508 334 540 339 629 348 704 360 732 362 761 360 788 353 808 344 860 315 880 307 900 301'/%3E%3Cpath d='M7 300 44 297 76 300 100 309 144 339 156 342 172 343 208 339 248 330 296 314 336 297'/%3E%3Cpath d='M28 388 0 392'/%3E%3Cpath d='M900 392 856 403 840 410 822 420'/%3E%3Cpath d='M832 2 816 13 796 32 763 72 754 88 749 100 749 112 752 120 760 126 768 128 780 128 800 124 844 110 900 84'/%3E%3Cpath d='M460 56 460 56'/%3E%3Cpath d='M64 168 32 175 0 188'/%3E%3Cpath d='M896 190 824 237 804 245 784 249 764 249 745 244 729 236 700 218 684 212 660 211 624 218 556 240 502 264 484 276 475 284 471 292 470 300 475 312 485 320 500 327 518 332 552 337 636 345 700 354 732 356 760 353 784 347 804 337 856 309 876 301 900 296'/%3E%3Cpath d='M30 292 60 292 84 296 105 304 148 330 164 335 184 336 220 332 264 321 308 306 340 290'/%3E%3Cpath d='M0 296 28 292'/%3E%3Cpath d='M892 399 860 408 834 420'/%3E%3Cpath d='M840 4 824 15 808 28 780 60 769 76 764 88 762 100 764 109 772 116 780 117 792 117 808 115 848 102 900 78'/%3E%3Cpath d='M448 64 448 64'/%3E%3Cpath d='M68 172 32 180 0 194'/%3E%3Cpath d='M896 196 824 246 804 254 788 257 764 257 744 252 728 245 696 225 676 218 652 217 616 224 560 242 511 264 492 276 484 284 480 292 479 300 482 308 492 317 505 324 528 330 556 334 636 341 700 348 728 349 752 347 776 341 796 333 852 302 876 295 900 290'/%3E%3Cpath d='M16 288 56 287 88 291 111 300 156 325 172 329 188 331 224 327 264 317 304 303 336 286'/%3E%3Cpath d='M28 400 0 403'/%3E%3Cpath d='M900 403 872 410 847 420'/%3E%3Cpath d='M856 3 840 11 824 22 809 36 795 52 784 68 778 80 775 92 778 100 784 105 792 107 804 107 820 104 856 92 900 72'/%3E%3Cpath d='M452 72 452 72'/%3E%3Cpath d='M76 176 56 178 36 183 0 199'/%3E%3Cpath d='M900 199 876 216 832 251 816 260 800 265 776 267 752 263 732 256 696 234 680 226 660 223 640 223 616 228 588 235 534 256 512 268 501 276 490 288 487 296 491 308 500 316 516 323 536 328 576 333 724 343 748 341 767 336 788 327 840 298 864 290 900 284'/%3E%3Cpath d='M2 284 52 281 88 285 112 293 160 319 176 324 196 325 228 322 268 312 304 299 332 283'/%3E%3Cpath d='M888 412 862 420'/%3E%3Cpath d='M896 3 864 13 836 30 821 44 812 56 807 68 806 76 808 80 816 85 836 84 864 76 900 59'/%3E%3Cpath d='M56 188 28 196 0 212'/%3E%3Cpath d='M896 215 881 228 871 240 863 252 862 260 864 264 870 268 900 271'/%3E%3Cpath d='M616 235 616 235'/%3E%3Cpath d='M0 271 64 271 96 275 120 283 168 309 184 314 204 316 240 312 276 302 307 288 319 280 328 271'/%3E%3Cpath d='M896 12 868 20 847 32 831 48 827 56 825 64 826 68 832 72 848 71 872 64 900 50'/%3E%3Cpath d='M64 192 48 195 32 200 16 209 0 220'/%3E%3Cpath d='M900 220 886 236 881 248 881 252 884 257 889 260 900 263'/%3E%3Cpath d='M616 240 616 240'/%3E%3Cpath d='M0 263 80 267 104 270 128 279 172 304 192 309 212 311 248 306 288 293 305 284 316 276 323 268 326 260'/%3E%3Cpath d='M884 27 884 27'/%3E%3Cpath d='M52 200 39 204 23 212 7 224 0 234'/%3E%3Cpath d='M616 244 616 244'/%3E%3Cpath d='M0 250 8 255 20 257 92 261 116 265 132 272 163 292 179 300 196 305 216 306 236 304 256 300 280 292 296 284 307 276 316 265 319 256 317 248'/%3E%3Cpath d='M68 204 68 204'/%3E%3Cpath d='M600 251 600 251'/%3E%3Cpath d='M220 244 220 244'/%3E%3Cpath d='M592 264 592 264'/%3E%3Cpath d='M220 252 220 252'/%3E%3Cpath d='M596 271 596 271'/%3E%3C/g%3E%3Cg fill='none' stroke='%23775500' stroke-width='1.5' opacity='0.18' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M608 4 568 7 512 4'/%3E%3Cpath d='M242 112 242 112'/%3E%3Cpath d='M561 144 561 144'/%3E%3Cpath d='M496 380 540 381 577 388 596 396 608 404 615 412 617 416 615 420'/%3E%3Cpath d='M464 384 496 380'/%3E%3Cpath d='M749 0 747 12 736 32 690 84 681 96 673 112 661 148 654 160 643 172 613 192 560 216 492 240 468 245 452 247 436 245 428 242 420 236 408 221 389 188 380 181 372 179 360 179 272 187 248 187 226 184 208 179 191 172 148 141 128 131 104 125 60 122 52 120 50 116 56 108 74 96 96 87 120 81 140 80 196 84 280 85 316 89 332 95 344 101 353 108 364 119 388 154 392 158 400 161 412 161 436 157 504 138 562 116 580 106 593 96 602 84 604 76 602 64 597 56 581 44 560 36 532 31 445 20 420 14 396 4'/%3E%3Cpath d='M352 324 372 321 388 322 404 327 441 344 464 351 492 355 580 364 620 371 732 404 745 412 749 420'/%3E%3Cpath d='M808 2 788 22 762 52 743 76 733 92 726 108 723 120 724 136 728 145 736 151 748 152 784 145 836 126 900 95'/%3E%3Cpath d='M276 24 260 28 253 32 250 36 249 40 253 44 261 48 278 52 336 57 356 61 372 73 396 104 408 116 420 124 432 128 448 129 468 127 488 123 512 115 532 105 543 96 552 84 553 76 550 68 542 60 528 54 512 50 476 46 384 44 368 40 336 28 321 24 300 22 276 24'/%3E%3Cpath d='M56 159 28 166 0 177'/%3E%3Cpath d='M896 179 820 223 800 231 784 234 768 233 750 228 737 220 712 200 700 195 684 194 660 199 576 226 492 260 470 272 459 280 452 288 449 296 453 308 463 320 480 329 500 336 532 342 624 351 704 365 736 368 768 366 796 359 816 350 865 320 900 307'/%3E%3Cpath d='M18 304 52 303 80 308 102 320 132 348 140 352 152 354 184 350 236 337 292 320 340 301'/%3E%3Cpath d='M76 376 0 386'/%3E%3Cpath d='M888 388 864 393 844 400 828 408 811 420'/%3E%3Cpath d='M872 3 856 9 840 19 815 40 801 56 794 68 790 80 791 88 793 92 802 96 824 95 860 84 900 66'/%3E%3Cpath d='M468 84 468 84'/%3E%3Cpath d='M52 184 26 192 0 206'/%3E%3Cpath d='M900 206 871 228 828 271 816 277 804 279 784 278 752 273 728 263 680 234 660 228 640 228 620 231 596 236 542 256 520 268 509 276 498 288 496 296 498 304 508 314 521 320 544 326 592 330 720 336 748 332 772 324 792 312 820 289 828 285 848 282 900 278'/%3E%3Cpath d='M0 278 56 276 92 280 116 288 164 314 180 319 200 320 232 317 270 308 304 295 328 280'/%3E%3Cpath d='M56 215 56 215'/%3E%3Cpath d='M204 240 204 240'/%3E%3Cpath d='M604 256 604 256'/%3E%3C/g%3E%3C/svg%3E");
}

@media (prefers-color-scheme: light) {
    html:not([data-theme]) {
        --topo-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='420'%3E%3Cg fill='none' stroke='%23775500' stroke-width='1' opacity='0.12' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M259 124 259 124'/%3E%3Cpath d='M532 164 532 164'/%3E%3Cpath d='M260 116 260 116'/%3E%3Cpath d='M555 152 555 152'/%3E%3Cpath d='M499 388 499 388'/%3E%3Cpath d='M660 0 675 12 678 20 672 28 660 32 648 30 620 21 600 17 508 9 475 4'/%3E%3Cpath d='M230 108 230 108'/%3E%3Cpath d='M593 132 593 132'/%3E%3Cpath d='M445 376 516 374 544 376 571 380 609 392 660 420'/%3E%3Cpath d='M691 0 697 4 703 12 704 20 701 28 695 36 684 45 672 52 660 54 648 52 616 33 592 25 560 19 487 12 452 4'/%3E%3Cpath d='M245 100 245 100'/%3E%3Cpath d='M590 124 590 124'/%3E%3Cpath d='M352 348 376 350 412 361 432 365 536 371 580 377 619 388 691 420'/%3E%3Cpath d='M715 0 720 8 721 16 718 24 711 36 700 48 684 61 664 73 652 78 644 76 640 72 627 56 613 44 588 32 556 24 468 14 432 4'/%3E%3Cpath d='M229 96 229 96'/%3E%3Cpath d='M623 104 623 104'/%3E%3Cpath d='M340 340 360 337 376 338 392 342 428 355 448 359 552 368 592 374 626 384 692 408 715 420'/%3E%3Cpath d='M733 0 735 12 729 28 713 48 669 92 661 108 651 148 644 160 634 172 604 192 551 216 492 236 472 240 456 241 444 240 434 236 424 229 417 220 410 208 405 192 405 184 409 176 428 166 528 134 582 112 603 100 612 92 617 84 618 72 613 60 604 50 592 41 576 35 544 28 456 17 435 12 413 4'/%3E%3Cpath d='M201 92 201 92'/%3E%3Cpath d='M344 332 364 329 384 330 400 335 436 349 456 355 484 359 564 365 603 372 708 404 725 412 733 420'/%3E%3Cpath d='M763 0 759 12 749 28 693 96 684 112 670 152 662 164 649 176 615 196 548 224 480 247 460 252 444 254 428 251 417 244 408 234 385 200 376 192 368 189 348 186 268 190 229 188 210 184 192 177 140 145 116 137 84 134 16 138 4 136 4 132 7 128 15 120 38 104 59 92 84 81 104 74 124 70 140 68 212 77 296 81 328 87 341 92 354 100 367 112 392 142 400 148 412 151 428 152 452 148 484 141 516 130 559 112 576 101 585 92 591 84 593 72 591 64 584 55 568 45 548 38 520 33 436 24 412 18 375 4'/%3E%3Cpath d='M360 316 380 313 396 315 408 319 444 338 468 346 500 352 572 359 606 364 738 396 757 404 763 412 763 420'/%3E%3Cpath d='M776 0 758 28 705 92 694 112 679 156 670 168 661 176 633 192 577 216 492 248 448 260 428 261 416 256 408 247 380 207 368 198 356 194 332 191 252 193 216 189 187 180 132 149 104 142 80 141 56 143 28 147 0 155'/%3E%3Cpath d='M123 60 140 57 156 57 220 70 296 76 328 81 344 86 359 96 400 137 416 144 432 145 460 142 496 133 532 120 555 108 571 96 580 84 582 72 580 64 576 59'/%3E%3Cpath d='M900 155 872 166 816 196 796 200 788 199 782 196 780 192 783 184 797 172 828 156'/%3E%3Cpath d='M367 308 388 304 404 306 412 309 448 333 465 340 484 345 606 360 696 381 760 392 771 396 776 400 779 408 776 420'/%3E%3Cpath d='M9 328 28 325 44 326 52 328 59 332 62 340 56 348 40 356 21 360 0 362'/%3E%3Cpath d='M788 0 715 92 703 116 692 156 684 168 675 176 654 188 616 204 464 262 428 274 420 275 412 271 387 228 379 216 368 206 352 199 324 196 244 196 212 192 184 183 132 155 116 150 100 147 76 147 52 149 28 155 0 164'/%3E%3Cpath d='M244 8 208 11 192 9'/%3E%3Cpath d='M147 44 160 42 172 44 208 58 232 64 312 71 340 77 352 83 364 91 395 124 406 132 420 138 440 140 476 135 520 121 552 104 562 96 569 88 572 80 572 72 569 64 561 56 540 47 508 40'/%3E%3Cpath d='M900 164 876 175 820 206 804 212 788 215 772 213 763 208 756 200 754 192 756 185 760 180 770 172 784 164'/%3E%3Cpath d='M394 292 404 290 412 291 446 324 464 334 488 342 520 347 612 357 716 378 796 386 802 388 803 392 801 400 788 420'/%3E%3Cpath d='M24 316 48 316 68 321 81 332 84 340 84 344 78 352 62 360 36 366 0 372'/%3E%3Cpath d='M900 372 864 375 844 374'/%3E%3Cpath d='M796 4 741 68 721 96 712 120 709 136 708 160 706 168 703 172 682 184 542 236 465 268 450 276 441 284 437 292 438 300 444 312 458 324 473 332 492 338 524 344 612 353 700 370 744 374 776 373 804 367 820 359 866 328 882 320 900 314'/%3E%3Cpath d='M256 16 256 16'/%3E%3Cpath d='M84 152 64 153 40 157 0 171'/%3E%3Cpath d='M900 171 876 183 820 215 800 223 784 225 772 224 760 221 750 216 741 208 735 200 730 188 731 180 736 175'/%3E%3Cpath d='M7 312 28 309 44 308 72 313 86 320 96 328 103 340 104 348 100 356 84 364 48 372 0 379'/%3E%3Cpath d='M900 379 860 386 836 393 820 402 799 420'/%3E%3Cpath d='M820 2 804 15 784 36 760 64 746 84 739 100 736 112 736 124 741 132 748 137 760 139 792 134 840 118 900 89'/%3E%3Cpath d='M428 52 408 55 396 58 390 64 389 72 395 88 408 106 420 116 436 122 452 124 468 123 504 113 523 104 534 96 541 88 543 80 542 72 536 65 527 60 515 56 476 51 428 52'/%3E%3Cpath d='M60 164 28 171 0 183'/%3E%3Cpath d='M900 183 880 194 824 229 804 238 784 242 764 241 748 237 732 228 704 209 692 205 668 204 636 210 568 232 501 260 480 272 469 280 463 288 460 296 463 308 472 318 488 327 508 334 540 339 629 348 704 360 732 362 761 360 788 353 808 344 860 315 880 307 900 301'/%3E%3Cpath d='M7 300 44 297 76 300 100 309 144 339 156 342 172 343 208 339 248 330 296 314 336 297'/%3E%3Cpath d='M28 388 0 392'/%3E%3Cpath d='M900 392 856 403 840 410 822 420'/%3E%3Cpath d='M832 2 816 13 796 32 763 72 754 88 749 100 749 112 752 120 760 126 768 128 780 128 800 124 844 110 900 84'/%3E%3Cpath d='M460 56 460 56'/%3E%3Cpath d='M64 168 32 175 0 188'/%3E%3Cpath d='M896 190 824 237 804 245 784 249 764 249 745 244 729 236 700 218 684 212 660 211 624 218 556 240 502 264 484 276 475 284 471 292 470 300 475 312 485 320 500 327 518 332 552 337 636 345 700 354 732 356 760 353 784 347 804 337 856 309 876 301 900 296'/%3E%3Cpath d='M30 292 60 292 84 296 105 304 148 330 164 335 184 336 220 332 264 321 308 306 340 290'/%3E%3Cpath d='M0 296 28 292'/%3E%3Cpath d='M892 399 860 408 834 420'/%3E%3Cpath d='M840 4 824 15 808 28 780 60 769 76 764 88 762 100 764 109 772 116 780 117 792 117 808 115 848 102 900 78'/%3E%3Cpath d='M448 64 448 64'/%3E%3Cpath d='M68 172 32 180 0 194'/%3E%3Cpath d='M896 196 824 246 804 254 788 257 764 257 744 252 728 245 696 225 676 218 652 217 616 224 560 242 511 264 492 276 484 284 480 292 479 300 482 308 492 317 505 324 528 330 556 334 636 341 700 348 728 349 752 347 776 341 796 333 852 302 876 295 900 290'/%3E%3Cpath d='M16 288 56 287 88 291 111 300 156 325 172 329 188 331 224 327 264 317 304 303 336 286'/%3E%3Cpath d='M28 400 0 403'/%3E%3Cpath d='M900 403 872 410 847 420'/%3E%3Cpath d='M856 3 840 11 824 22 809 36 795 52 784 68 778 80 775 92 778 100 784 105 792 107 804 107 820 104 856 92 900 72'/%3E%3Cpath d='M452 72 452 72'/%3E%3Cpath d='M76 176 56 178 36 183 0 199'/%3E%3Cpath d='M900 199 876 216 832 251 816 260 800 265 776 267 752 263 732 256 696 234 680 226 660 223 640 223 616 228 588 235 534 256 512 268 501 276 490 288 487 296 491 308 500 316 516 323 536 328 576 333 724 343 748 341 767 336 788 327 840 298 864 290 900 284'/%3E%3Cpath d='M2 284 52 281 88 285 112 293 160 319 176 324 196 325 228 322 268 312 304 299 332 283'/%3E%3Cpath d='M888 412 862 420'/%3E%3Cpath d='M896 3 864 13 836 30 821 44 812 56 807 68 806 76 808 80 816 85 836 84 864 76 900 59'/%3E%3Cpath d='M56 188 28 196 0 212'/%3E%3Cpath d='M896 215 881 228 871 240 863 252 862 260 864 264 870 268 900 271'/%3E%3Cpath d='M616 235 616 235'/%3E%3Cpath d='M0 271 64 271 96 275 120 283 168 309 184 314 204 316 240 312 276 302 307 288 319 280 328 271'/%3E%3Cpath d='M896 12 868 20 847 32 831 48 827 56 825 64 826 68 832 72 848 71 872 64 900 50'/%3E%3Cpath d='M64 192 48 195 32 200 16 209 0 220'/%3E%3Cpath d='M900 220 886 236 881 248 881 252 884 257 889 260 900 263'/%3E%3Cpath d='M616 240 616 240'/%3E%3Cpath d='M0 263 80 267 104 270 128 279 172 304 192 309 212 311 248 306 288 293 305 284 316 276 323 268 326 260'/%3E%3Cpath d='M884 27 884 27'/%3E%3Cpath d='M52 200 39 204 23 212 7 224 0 234'/%3E%3Cpath d='M616 244 616 244'/%3E%3Cpath d='M0 250 8 255 20 257 92 261 116 265 132 272 163 292 179 300 196 305 216 306 236 304 256 300 280 292 296 284 307 276 316 265 319 256 317 248'/%3E%3Cpath d='M68 204 68 204'/%3E%3Cpath d='M600 251 600 251'/%3E%3Cpath d='M220 244 220 244'/%3E%3Cpath d='M592 264 592 264'/%3E%3Cpath d='M220 252 220 252'/%3E%3Cpath d='M596 271 596 271'/%3E%3C/g%3E%3Cg fill='none' stroke='%23775500' stroke-width='1.5' opacity='0.18' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M608 4 568 7 512 4'/%3E%3Cpath d='M242 112 242 112'/%3E%3Cpath d='M561 144 561 144'/%3E%3Cpath d='M496 380 540 381 577 388 596 396 608 404 615 412 617 416 615 420'/%3E%3Cpath d='M464 384 496 380'/%3E%3Cpath d='M749 0 747 12 736 32 690 84 681 96 673 112 661 148 654 160 643 172 613 192 560 216 492 240 468 245 452 247 436 245 428 242 420 236 408 221 389 188 380 181 372 179 360 179 272 187 248 187 226 184 208 179 191 172 148 141 128 131 104 125 60 122 52 120 50 116 56 108 74 96 96 87 120 81 140 80 196 84 280 85 316 89 332 95 344 101 353 108 364 119 388 154 392 158 400 161 412 161 436 157 504 138 562 116 580 106 593 96 602 84 604 76 602 64 597 56 581 44 560 36 532 31 445 20 420 14 396 4'/%3E%3Cpath d='M352 324 372 321 388 322 404 327 441 344 464 351 492 355 580 364 620 371 732 404 745 412 749 420'/%3E%3Cpath d='M808 2 788 22 762 52 743 76 733 92 726 108 723 120 724 136 728 145 736 151 748 152 784 145 836 126 900 95'/%3E%3Cpath d='M276 24 260 28 253 32 250 36 249 40 253 44 261 48 278 52 336 57 356 61 372 73 396 104 408 116 420 124 432 128 448 129 468 127 488 123 512 115 532 105 543 96 552 84 553 76 550 68 542 60 528 54 512 50 476 46 384 44 368 40 336 28 321 24 300 22 276 24'/%3E%3Cpath d='M56 159 28 166 0 177'/%3E%3Cpath d='M896 179 820 223 800 231 784 234 768 233 750 228 737 220 712 200 700 195 684 194 660 199 576 226 492 260 470 272 459 280 452 288 449 296 453 308 463 320 480 329 500 336 532 342 624 351 704 365 736 368 768 366 796 359 816 350 865 320 900 307'/%3E%3Cpath d='M18 304 52 303 80 308 102 320 132 348 140 352 152 354 184 350 236 337 292 320 340 301'/%3E%3Cpath d='M76 376 0 386'/%3E%3Cpath d='M888 388 864 393 844 400 828 408 811 420'/%3E%3Cpath d='M872 3 856 9 840 19 815 40 801 56 794 68 790 80 791 88 793 92 802 96 824 95 860 84 900 66'/%3E%3Cpath d='M468 84 468 84'/%3E%3Cpath d='M52 184 26 192 0 206'/%3E%3Cpath d='M900 206 871 228 828 271 816 277 804 279 784 278 752 273 728 263 680 234 660 228 640 228 620 231 596 236 542 256 520 268 509 276 498 288 496 296 498 304 508 314 521 320 544 326 592 330 720 336 748 332 772 324 792 312 820 289 828 285 848 282 900 278'/%3E%3Cpath d='M0 278 56 276 92 280 116 288 164 314 180 319 200 320 232 317 270 308 304 295 328 280'/%3E%3Cpath d='M56 215 56 215'/%3E%3Cpath d='M204 240 204 240'/%3E%3Cpath d='M604 256 604 256'/%3E%3C/g%3E%3C/svg%3E");
    }
}

.landing-hero {
    text-align: center;
    padding: 5rem 1rem 4.5rem;
    background-image:
        linear-gradient(
            to bottom,
            var(--pico-background-color) 0%,
            transparent 25%,
            transparent 75%,
            var(--pico-background-color) 100%
        ),
        var(--topo-pattern);
    background-size:
        100% 100%,
        900px 420px;
    background-repeat: no-repeat, repeat;
}

.landing-hero h1 {
    font-size: clamp(2.2rem, 6vw, 4rem);
    line-height: 1.1;
    margin-bottom: 1rem;
}

.landing-hero hgroup p {
    font-size: 1.1rem;
    color: var(--pico-muted-color);
    max-width: 38rem;
    margin: 0 auto 2rem;
    animation: fade-up 0.7s ease-out 0.15s both;
}

.landing-hero-actions {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    animation: fade-up 0.7s ease-out 0.3s both;
}

@keyframes fade-up {
    from {
        opacity: 0;
        transform: translateY(1.75rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .landing-hero h1,
    .landing-hero hgroup p,
    .landing-hero-actions {
        animation: none;
    }
}

.feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background-color: var(--pico-primary-background);
    color: var(--pico-primary-inverse);
    margin-bottom: 0.75rem;
    flex-shrink: 0;
}

.feature-icon svg {
    width: 1.375rem;
    height: 1.375rem;
}

.landing-features,
.landing-app-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--pico-spacing);
    margin: 2rem 0;
}

@media (max-width: 600px) {
    .landing-features,
    .landing-app-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Landing: the app section ── */
.landing-app {
    padding: 2rem 0 1rem;
}

.landing-app-header {
    text-align: center;
    max-width: 40rem;
    margin: 0 auto;
}

.landing-app-header .eyebrow {
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pico-primary);
    margin-bottom: 0.35rem;
}

.landing-app-header h2 {
    margin-bottom: 0.75rem;
}

.landing-app-header p {
    color: var(--pico-muted-color);
}

.coming-soon {
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.6rem;
    padding: 0.15em 0.6em;
    font-size: 0.6em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.4;
    color: var(--pico-primary-inverse);
    background-color: var(--pico-primary-background);
    border-radius: 1em;
    white-space: nowrap;
}

/* ── About / Contact pages ── */
.about-page {
    max-width: 48rem;
    margin: 0 auto;
}

.about-page hgroup {
    margin-bottom: 2rem;
}

.about-page section {
    margin-bottom: 2rem;
}

/* ── Login split layout ── */
.login-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: stretch;
    min-height: 44rem;
}

.login-form {
    max-width: 26rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem 0;
}

.login-image {
    border-radius: var(--pico-border-radius);
    overflow: hidden;
}

.login-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left;
    display: block;
}

@media (max-width: 768px) {
    .login-split {
        grid-template-columns: 1fr;
        min-height: unset;
        gap: 0;
    }

    .login-image {
        display: none;
    }
}

.avatar-wrap {
    position: relative;
    border-radius: 50% !important;
    width: 6rem !important;
    height: 6rem !important;
    min-height: unset !important;
    padding: 0 !important;
    overflow: hidden;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    border: var(--pico-border-width) solid var(--pico-muted-border-color) !important;
    box-shadow: none !important;
    cursor: pointer;
}

.avatar-wrap--large {
    width: 7rem !important;
    height: 7rem !important;
    cursor: default;
}

/* ── Public profile ─────────────────────────────────────────────────────── */

.profile-cover {
    position: relative;
    height: clamp(8rem, 22vw, 12rem);
    border-radius: var(--pico-border-radius);
    overflow: hidden;
    background-color: var(--pico-card-background-color);
}

/* Descendant selector: must out-rank maplibre-gl.css's
   `.maplibregl-map { position: relative }` on the same element. */
.profile-cover .profile-cover-map {
    position: absolute;
    inset: 0;
}

/* The fade replaces the global hairline map frame inside the cover. */
.profile-cover .maplibregl-map {
    border: none;
}

.profile-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        transparent 45%,
        color-mix(in srgb, var(--pico-background-color) 55%, transparent) 78%,
        var(--pico-background-color) 100%
    );
}

.profile-cover--fallback {
    background-image: var(--topo-pattern);
    /* Scaled down (same 15:7 tile ratio) so the short banner shows a dense
       slice of contours rather than one sparse corner. */
    background-size: 600px 280px;
    background-repeat: repeat;
}

.profile-identity {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 1.25rem;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-top: -3.25rem; /* half the 7rem avatar overlaps the cover */
    padding: 0 1.25rem;
}

/* Must live after .avatar-wrap so these !importants win its !importants. */
.profile-avatar-overlap {
    border: 4px solid var(--pico-background-color) !important;
    background: var(--pico-card-background-color) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3) !important;
    flex-shrink: 0;
}

.profile-identity-text {
    flex: 1;
    min-width: 200px;
    padding-bottom: 0.25rem;
}

.stat-band {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 2rem;
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0 1.25rem;
}

.stat-band li {
    display: flex;
    flex-direction: column;
    list-style: none;
}

.stat-band strong {
    font-size: 1.3rem;
    line-height: 1.2;
}

.stat-band small {
    color: var(--pico-muted-color);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ── Card polish (profile track/waypoint/group cards) ───────────────────── */

.card-hover {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.card-hover:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
}

.card-thumb {
    position: relative;
    overflow: hidden;
    transition: transform 0.25s ease;
}

.card-hover:hover .card-thumb {
    transform: scale(1.03);
}

/* Descendant selector: out-ranks `.maplibregl-map { position: relative }`. */
.card-thumb .card-thumb-map {
    position: absolute;
    inset: 0;
}

/* Full-bleed images (group pictures) — but never the small photo chip,
   which this child rule would otherwise out-rank and inflate. */
.card-thumb > img:not(.thumb-photo-chip) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.thumb-photo-chip {
    position: absolute;
    right: 0.5rem;
    bottom: 0.5rem;
    width: 3.25rem;
    height: 3.25rem;
    object-fit: cover;
    border-radius: calc(var(--pico-border-radius) * 0.75);
    border: 2px solid var(--pico-background-color);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    z-index: 1;
}

/* Card titles occupy exactly two lines — clamped above, reserved below —
   so title length never changes a card's height. */
.card-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    line-height: 1.3;
    min-height: 2.6em;
}

.badge {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    font-size: 0.7rem;
    line-height: 1.5;
    border: 1px solid var(--pico-muted-border-color);
    border-radius: 1em;
    color: var(--pico-muted-color);
    white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
    .card-hover,
    .card-thumb {
        transition: none;
    }

    .card-hover:hover {
        transform: none;
    }

    .card-hover:hover .card-thumb {
        transform: none;
    }
}

.avatar-camera-overlay {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--pico-transition);
    pointer-events: none;
}

button.avatar-wrap:hover .avatar-camera-overlay {
    opacity: 1;
}

/* Touch devices: no hover, show a small badge in the corner instead */
@media (hover: none) {
    .avatar-camera-overlay {
        inset: auto;
        bottom: 0;
        right: 0;
        width: 1.8rem;
        height: 1.8rem;
        opacity: 1;
        background: var(--pico-primary-background);
    }

    .avatar-camera-overlay svg {
        width: 14px;
        height: 14px;
    }
}

.gpx-details {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.4rem var(--pico-spacing);
    margin: 0;
}

.gpx-details dt {
    color: var(--pico-muted-color);
    font-size: var(--pico-small-font-size);
    align-self: center;
}

.gpx-details dd {
    margin: 0;
}

@media (min-width: 768px) {
    .grid.grid-sidebar {
        grid-template-columns: 1fr 4fr;
    }

    .hide-on-desktop {
        display: none;
    }
}

@media (max-width: 768px) {
    .hide-on-mobile {
        display: none;
    }
}

.groups-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--pico-spacing);
}

.groups-grid a > article {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    border-bottom: 4px solid transparent;
    transition:
        background-color var(--pico-transition),
        border-color var(--pico-transition);
}

.groups-grid a:hover > article {
    background-color: var(--pico-dropdown-hover-background-color);
    border-bottom-color: var(--pico-primary-hover);
}

.groups-grid a > article img {
    width: 100%;
    /* Square card image: shows most of any logo at a consistent size instead
       of the arbitrary wide strip a fixed height used to crop it to. */
    aspect-ratio: 1;
    display: block;
    object-fit: cover;
    flex-shrink: 0;
}

.groups-grid .card-body {
    padding: var(--pico-spacing);
}

@media (max-width: 900px) {
    .groups-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 500px) {
    .groups-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Cookie Consent Popup ── */
.cookie-popup {
    position: fixed;
    bottom: 1.5rem;
    left: 1.5rem;
    z-index: 9999;
    width: 360px;
    background-color: var(--pico-card-background-color);
    border: var(--pico-border-width) solid var(--pico-muted-border-color);
    border-radius: 16px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4);
    overflow: hidden;
}

.cookie-popup-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1.1rem 1.25rem 0.6rem;
    color: var(--pico-primary);
}

.cookie-popup-header strong {
    font-size: 1rem;
}

.cookie-popup-body {
    padding: 0 1.25rem 1.25rem;
}

.cookie-popup-body p {
    font-size: var(--pico-small-font-size);
    color: var(--pico-muted-color);
    margin-bottom: 0.4rem;
    line-height: 1.5;
}

.cookie-popup-body > small {
    display: block;
    color: var(--pico-muted-color);
    margin-bottom: 1rem;
}

.cookie-popup-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1rem;
}

.cookie-popup-actions button {
    margin: 0;
    width: 100%;
}

.cookie-manage-link {
    font-size: var(--pico-small-font-size) !important;
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}

.cookie-fieldset {
    border: none;
    padding: 0;
    margin: 0 0 0.5rem;
}

.cookie-category {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: var(--pico-border-width) solid var(--pico-muted-border-color);
    cursor: pointer;
    margin: 0;
}

.cookie-category:last-child {
    border-bottom: none;
}

.cookie-category-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.cookie-category-info strong {
    font-size: var(--pico-small-font-size);
}

.cookie-category-info small {
    color: var(--pico-muted-color);
    line-height: 1.4;
}

.cookie-category input[type="checkbox"] {
    flex-shrink: 0;
    margin: 0;
}

@media (max-width: 480px) {
    .cookie-popup {
        left: 0.75rem;
        right: 0.75rem;
        bottom: 0.75rem;
        width: auto;
    }
}

/* ── MapLibre popup theming ── */
:root {
    --map-popup-bg: #262626;
    --map-popup-color: #f0f0f0;
}

html[data-theme="light"] {
    --map-popup-bg: #ffffff;
    --map-popup-color: #333333;
}

@media (prefers-color-scheme: light) {
    html:not([data-theme]) {
        --map-popup-bg: #ffffff;
        --map-popup-color: #333333;
    }
}

/* Hairline frame around every rendered map — the dark map palette matches the
   page background, so maps need an edge to read as a distinct surface. */
.maplibregl-map {
    border: 1px solid var(--pico-muted-border-color);
}

[data-controller~="featured-map"] .maplibregl-canvas {
    cursor: default !important;
}

.maplibregl-popup-content {
    background-color: var(--map-popup-bg) !important;
    color: var(--map-popup-color) !important;
}

.maplibregl-popup-anchor-bottom .maplibregl-popup-tip {
    border-top-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-top .maplibregl-popup-tip {
    border-bottom-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-left .maplibregl-popup-tip {
    border-right-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-right .maplibregl-popup-tip {
    border-left-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-top-left .maplibregl-popup-tip {
    border-bottom-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
    border-bottom-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip {
    border-top-color: var(--map-popup-bg) !important;
}
.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
    border-top-color: var(--map-popup-bg) !important;
}

/* ── Elevation Profile Chart ── */
.elevation-profile-wrap {
    margin-top: 1rem;
    border-radius: var(--pico-border-radius);
    background: var(--pico-card-background-color);
    border: var(--pico-border-width) solid var(--pico-muted-border-color);
    padding: 0.5rem 0.25rem 0.25rem;
    overflow: hidden;
}

.elevation-profile-wrap svg {
    display: block;
    width: 100%;
    height: auto;
    cursor: crosshair;
}

/* ── GPX stat section labels ── */
.stat-group-label {
    margin: 1rem 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--pico-muted-color);
}

/* ── Speed Profile Chart ── */
.speed-profile-wrap {
    margin-top: 0.5rem;
    border-radius: var(--pico-border-radius);
    background: var(--pico-card-background-color);
    border: var(--pico-border-width) solid var(--pico-muted-border-color);
    padding: 0.5rem 0.25rem 0.25rem;
    overflow: hidden;
}

.speed-profile-wrap svg {
    display: block;
    width: 100%;
    height: auto;
    cursor: crosshair;
}
