:root {
  --theme-ink: #101411;
  --theme-paper: #f3f1e9;
  --theme-surface: #fbfaf4;
  --theme-surface-muted: #e7e5dc;
  --theme-lime: #c9ff3d;
  --theme-mint: #7ef6cf;
  --theme-violet: #8a7cff;
  --theme-text: #303630;
  --theme-muted: #697068;
  --theme-border: rgba(16, 20, 17, .14);
  --theme-shadow: 0 18px 45px rgba(29, 34, 29, .07);
}

.app-theme { background: var(--theme-paper); color: var(--theme-text); }
.app-theme a:focus-visible, .app-theme button:focus-visible, .app-theme input:focus-visible, .app-theme select:focus-visible, .app-theme textarea:focus-visible, .app-theme summary:focus-visible { outline: 3px solid rgba(138,124,255,.35); outline-offset: 3px; }

/* Shared navigation */
.app-theme .landing-header { background: rgba(243, 241, 233, .88); border-bottom: 1px solid var(--theme-border); max-width: none; padding: 1rem clamp(1rem, 4vw, 4.5rem); position: sticky; top: 0; backdrop-filter: blur(18px); z-index: 8; }
.app-brand { align-items: center; color: var(--theme-ink); display: inline-flex; font-size: 1rem; gap: .65rem; letter-spacing: -.03em; white-space: nowrap; }
.brand-cluster { align-items: center; display: flex; gap: .55rem; min-width: 0; }
.app-brand .brand-mark { align-items: center; background: var(--theme-ink); border-radius: 50%; display: inline-flex; flex: 0 0 27px; height: 27px; justify-content: center; width: 27px; }
.app-brand .brand-mark > span { border: 2px solid var(--theme-lime); border-radius: 50%; height: 11px; position: relative; width: 11px; }
.app-brand .brand-mark > span::after { background: var(--theme-lime); content: ""; height: 2px; left: 7px; position: absolute; top: 3px; transform: rotate(-35deg); width: 8px; }
.app-theme .header-nav { gap: clamp(.7rem, 2vw, 1.5rem); }
.app-theme .header-nav > .nav-link { color: #3f453f; font-size: .82rem; font-weight: 720; padding: .35rem 0; }
.app-theme .header-nav > .nav-link:hover { color: var(--theme-ink); }
.app-theme .header-nav > .active-nav { border-bottom: 1px solid var(--theme-ink); color: var(--theme-ink); }
.x402-nav-badge { background: #e1ffc0; border: 1px solid #aed66e; border-radius: 999px; color: #26341e; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .57rem; font-weight: 850; letter-spacing: .06em; padding: .35rem .5rem; text-transform: uppercase; white-space: nowrap; }
.app-theme .user-menu-trigger { background: transparent; border: 0; border-radius: 8px; color: var(--theme-ink); font-size: .82rem; padding: .45rem 0; }
.app-theme .user-menu-trigger:hover, .app-theme .user-menu-trigger:focus { background: transparent; color: var(--theme-ink); }
.app-theme .user-balance { border-color: var(--theme-border); color: #4d5e3c; }
.app-theme .user-nav-avatar { background: var(--theme-ink); color: var(--theme-lime); }
.app-theme .user-menu-list { background: var(--theme-surface); border-color: var(--theme-border); box-shadow: var(--theme-shadow); }
.app-theme .user-menu-list .nav-link:hover { background: var(--theme-surface-muted); color: var(--theme-ink); }

/* Page framing and typography */
.app-theme .page-shell { max-width: 1240px; padding: clamp(2rem, 5vw, 4.5rem) clamp(1rem, 4vw, 3rem) clamp(5rem, 9vw, 8rem); }
.app-theme .breadcrumb-nav, .app-theme .back-link { margin-bottom: 2.5rem; }
.app-theme .breadcrumb-nav a, .app-theme .back-link { color: var(--theme-muted); font-size: .75rem; font-weight: 780; letter-spacing: .025em; text-decoration: none; }
.app-theme .breadcrumb-nav a:hover, .app-theme .back-link:hover { color: var(--theme-ink); }
.app-theme .eyebrow { color: #4d5e3c; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .66rem; letter-spacing: .13em; }
.app-theme .hero { margin: 0 0 3rem; max-width: 850px; }
.app-theme .hero h1, .app-theme .legal-page-header h1 { color: var(--theme-ink); font-size: clamp(3rem, 7vw, 6.5rem); letter-spacing: -.075em; line-height: .9; }
.app-theme .hero > p:last-child, .app-theme .legal-page-header > p:not(.eyebrow) { color: var(--theme-muted); font-size: 1.05rem; line-height: 1.65; max-width: 700px; }

/* Controls */
.app-theme button, .app-theme .button { background: var(--theme-ink); border-color: var(--theme-ink); border-radius: 999px; color: white; font-size: .82rem; padding: .7rem 1rem; transition: background .18s, border-color .18s, color .18s, transform .18s; }
.app-theme button:hover, .app-theme .button:hover { background: #30362f; color: var(--theme-lime); }
.app-theme .button-secondary { background: transparent; border-color: #9ea39c; color: var(--theme-ink); }
.app-theme .button-secondary:hover { background: var(--theme-surface-muted); border-color: var(--theme-ink); color: var(--theme-ink); }
.app-theme input, .app-theme select, .app-theme textarea { background: var(--theme-surface); border-color: #b9bdb5; border-radius: 9px; color: var(--theme-ink); }
.app-theme input:focus, .app-theme select:focus, .app-theme textarea:focus { border-color: #758347; box-shadow: 0 0 0 3px rgba(201,255,61,.3); outline: none; }
.app-theme label { color: #4d544d; font-size: .7rem; letter-spacing: .025em; }

/* Bounty explorer */
.app-theme .filters { background: rgba(251,250,244,.74); border-color: var(--theme-border); border-radius: 16px; box-shadow: none; padding: 1.3rem; }
.app-theme .results-heading { border-bottom: 1px solid var(--theme-border); color: var(--theme-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .66rem; letter-spacing: .07em; margin-bottom: 1.2rem; padding-bottom: .75rem; text-transform: uppercase; }
.app-theme .results-heading p { margin: 0; }
.app-theme .view-toggle-button { border-color: var(--theme-border); border-radius: 999px; color: var(--theme-muted); font-family: inherit; font-size: .6rem; padding: .38rem .6rem; }
.app-theme .view-toggle-button:hover { background: var(--theme-surface-muted); border-color: #858b83; color: var(--theme-ink); }
.app-theme .view-toggle-button[aria-pressed="true"] { background: var(--theme-ink); border-color: var(--theme-ink); color: var(--theme-lime); }
.app-theme .bounty-grid { gap: 1.1rem; }
.app-theme .bounty-card { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 15px; box-shadow: none; min-height: 255px; padding: 1.35rem; }
.app-theme .bounty-card:hover { border-color: #858b83; box-shadow: var(--theme-shadow); transform: translateY(-4px); }
.app-theme .bounty-list-view .bounty-card { min-height: 0; padding: 1rem 1.15rem; }
.app-theme .bounty-list-view .bounty-card:hover { transform: translateX(3px); }
.app-theme .pill { background: #e3e1d8; color: #4f564e; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .6rem; letter-spacing: .04em; text-transform: uppercase; }
.app-theme .price { color: var(--theme-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
.app-theme .bounty-card h2 { color: var(--theme-ink); font-size: 1.3rem; letter-spacing: -.04em; }
.app-theme .card-description { color: var(--theme-muted); }
.app-theme .metadata { border-color: var(--theme-border); color: var(--theme-muted); }
.app-theme .bounty-list-view .metadata { border-color: var(--theme-border); }
.app-theme .submission-status { background: #dff6e7; color: #245f39; }.app-theme .review-status { background: #fff0bc; color: #68500e; }

/* Bounty detail, reviews, and dialogs */
.app-theme .detail-shell { max-width: 920px; }
.app-theme #bounty-detail { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 18px; box-shadow: var(--theme-shadow); }
.app-theme .detail-header { border-color: var(--theme-border); }
.app-theme .detail-header h1 { color: var(--theme-ink); font-size: clamp(2.7rem, 7vw, 5rem); letter-spacing: -.07em; }
.app-theme .detail-price { color: #465724; font-family: Georgia, "Times New Roman", serif; }
.app-theme #bounty-detail h2 { color: var(--theme-ink); }.app-theme #bounty-detail p { color: var(--theme-muted); }
.app-theme .detail-metadata, .app-theme .detail-metadata > div { border-color: var(--theme-border); }
.app-theme .detail-metadata dt { color: var(--theme-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }.app-theme .detail-metadata dd { color: var(--theme-ink); }
.app-theme .evidence-submission { background: #f2f5e8; border-color: #cbd6a8; }.app-theme .evidence-submission.has-submitted { background: #e7f5ea; border-color: #add0b7; }
.app-theme .reviewer-action { background: #f6f1df; border-color: #d7c98c; border-radius: 14px; }.app-theme .reviewer-task { background: var(--theme-surface); border-color: #d6cda7; }
.app-theme .modal-backdrop { background: rgba(16,20,17,.68); backdrop-filter: blur(5px); }.app-theme .evidence-modal { background: var(--theme-surface); border: 1px solid rgba(255,255,255,.25); border-radius: 18px; }.app-theme .modal-header h2 { color: var(--theme-ink); }.app-theme .modal-close { background: transparent; border: 0; border-radius: 50%; color: var(--theme-muted); }.app-theme .modal-close:hover { background: var(--theme-surface-muted); color: var(--theme-ink); }
.app-theme .evidence-dropzone { background: #f0efe6; border-color: #969d83; color: #40502e; }.app-theme .evidence-dropzone:hover, .app-theme .evidence-dropzone:focus, .app-theme .evidence-dropzone.is-dragging { background: #e5f5c9; border-color: #758347; color: #26341e; }
.app-theme .evidence-dropzone:hover strong, .app-theme .evidence-dropzone:focus strong, .app-theme .evidence-dropzone.is-dragging strong { color: #26341e; }
.app-theme .review-detail { background: var(--theme-surface); border-color: var(--theme-border); }.app-theme .review-detail section, .app-theme .review-vote-form { border-color: var(--theme-border); }

/* API documentation */
.app-theme .docs-shell { gap: clamp(2.5rem, 6vw, 6rem); max-width: 1280px; padding: clamp(3rem, 6vw, 5rem) clamp(1rem, 4vw, 3rem) 7rem; }
.app-theme .docs-nav { background: var(--theme-ink); border-radius: 16px; padding: 1.5rem; top: 5.5rem; }
.app-theme .docs-nav .eyebrow { color: var(--theme-lime); }.app-theme .docs-nav h1 { color: white; font-size: 1.4rem; }.app-theme .docs-nav a { border-left: 2px solid transparent; color: #aeb5ad; padding-left: .7rem; }.app-theme .docs-nav a:hover { border-color: var(--theme-lime); color: white; text-decoration: none; }
.app-theme .docs-content section { border-color: var(--theme-border); padding: 2.8rem 0; }.app-theme .docs-content h2 { color: var(--theme-ink); font-size: clamp(1.65rem, 3vw, 2.3rem); letter-spacing: -.045em; }.app-theme .docs-content h3 { color: var(--theme-ink); }.app-theme .docs-content p, .app-theme .docs-content li { color: var(--theme-muted); }
.app-theme .docs-content code { background: #e4e2da; color: #30362f; }.app-theme .docs-content pre { background: var(--theme-ink); border: 1px solid #30362f; border-radius: 13px; box-shadow: 0 16px 35px rgba(16,20,17,.1); color: #e8ede7; }
.app-theme .docs-notice { background: #f5f0dc; border-color: #d3c689; color: #5b4d18; }.app-theme .docs-endpoint { border-color: var(--theme-border); }.app-theme .docs-endpoint > span:last-child { color: var(--theme-muted); }
.app-theme .method { border-radius: 999px; }.app-theme .method.get { background: #366a4a; }.app-theme .method.post { background: #50489c; }.app-theme .method.patch { background: #8a641b; }.app-theme .method.delete { background: #873e3a; }

/* FAQ and terms */
.app-theme .legal-page { max-width: 960px; }.app-theme .legal-page-header { margin: 0 0 3.5rem; }.app-theme .legal-page-header h1 { margin-top: .8rem; }
.app-theme .faq-group { margin: 3.5rem 0; }.app-theme .faq-group h2, .app-theme .legal-content h2 { color: var(--theme-ink); font-size: 1.25rem; letter-spacing: -.03em; }
.app-theme .faq-group details { background: transparent; border: 0; border-bottom: 1px solid var(--theme-border); border-radius: 0; margin: 0; padding: 0; }.app-theme .faq-group details:first-of-type { border-top: 1px solid var(--theme-border); }
.app-theme .faq-group summary { color: var(--theme-ink); font-size: 1rem; padding: 1.2rem 2rem 1.2rem 0; }.app-theme .faq-group summary::marker { color: #687447; }.app-theme .faq-group details p { color: var(--theme-muted); max-width: 760px; padding-right: 2rem; }
.app-theme .legal-content { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 18px; box-shadow: var(--theme-shadow); }.app-theme .legal-content section + section { border-color: var(--theme-border); }.app-theme .legal-content p { color: var(--theme-muted); }
.app-theme .legal-draft-notice { background: #f5f0dc; border-color: #d3c689; color: #5b4d18 !important; }.app-theme .legal-meta { font-size: .78rem !important; }

/* Account pages */
.app-theme .dashboard-shell { max-width: 1040px; }.app-theme .dashboard-header h1, .app-theme .profile-header h1 { color: var(--theme-ink); font-size: clamp(3rem, 7vw, 5.5rem); letter-spacing: -.07em; line-height: .92; }.app-theme .dashboard-header > p:last-child, .app-theme .profile-header > p:last-child { color: var(--theme-muted); }
.app-theme .wallet-card { background: var(--theme-surface); border-color: var(--theme-border); box-shadow: var(--theme-shadow); }.app-theme .wallet-card-heading h2, .app-theme .wallet-details strong, .app-theme .wallet-transactions-heading h3 { color: var(--theme-ink); }.app-theme .wallet-card p, .app-theme .wallet-details span, .app-theme .wallet-details code { color: var(--theme-muted); }.app-theme .wallet-network { background: #e1ffc0; color: #26341e; }.app-theme .wallet-transactions, .app-theme .wallet-transaction { border-color: var(--theme-border); }.app-theme .wallet-transaction:hover { background: #f1f0e9; }
.app-theme .dashboard-summary { gap: 1rem; }.app-theme .dashboard-stat { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 14px; }.app-theme .dashboard-stat span { color: var(--theme-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; letter-spacing: .05em; text-transform: uppercase; }.app-theme .dashboard-stat strong { color: var(--theme-ink); font-family: Georgia, "Times New Roman", serif; font-weight: 500; }.app-theme .dashboard-note { background: #f5f0dc; border-color: #d3c689; color: #5b4d18; }.app-theme .dashboard-history h2 { color: var(--theme-ink); }.app-theme .dashboard-submission { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 13px; }.app-theme .dashboard-submission:hover { border-color: #858b83; box-shadow: var(--theme-shadow); }.app-theme .dashboard-submission h3, .app-theme .dashboard-submission-footer strong { color: var(--theme-ink); }.app-theme .dashboard-submission > p, .app-theme .dashboard-submission-footer { color: var(--theme-muted); }
.app-theme .profile-shell { max-width: 880px; }.app-theme .profile-card { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 15px; }.app-theme .profile-card h2 { color: var(--theme-ink); }.app-theme .profile-avatar { background: var(--theme-ink); color: var(--theme-lime); }.app-theme .photo-upload-button { background: var(--theme-ink); border-color: var(--theme-ink); border-radius: 999px; }.app-theme .photo-upload-button:hover { background: #30362f; color: var(--theme-lime); }

/* Focused sign-in page */
.app-theme.auth-page { background: var(--theme-paper); }
.app-theme .auth-container { max-width: 460px; }.app-theme .auth-card { background: var(--theme-surface); border-color: var(--theme-border); border-radius: 18px; box-shadow: var(--theme-shadow); }.app-theme .auth-header { display: grid; justify-items: center; }.app-theme .auth-brand { margin-bottom: 1.6rem; text-decoration: none; }.app-theme .auth-header h1 { color: var(--theme-ink); font-size: 1.8rem; letter-spacing: -.045em; }.app-theme .auth-header p { color: var(--theme-muted); }.app-theme .auth-tabs { border-color: var(--theme-border); }.app-theme .auth-tab { background: transparent; border-color: transparent; border-radius: 0; color: var(--theme-muted); }.app-theme .auth-tab:hover { background: transparent; color: var(--theme-ink); }.app-theme .auth-tab.active { border-bottom-color: var(--theme-ink); color: var(--theme-ink); }.app-theme .form-group label { color: #4d544d; }.app-theme .form-group input { background: white; border-color: #b9bdb5; border-radius: 9px; color: var(--theme-ink); }.app-theme .form-group input:focus { border-color: #758347; box-shadow: 0 0 0 3px rgba(201,255,61,.3); }.app-theme .submit-btn { background: var(--theme-ink); border-radius: 999px; }.app-theme .submit-btn:hover { background: #30362f; color: var(--theme-lime); }.app-theme .auth-footer { color: var(--theme-muted); }.app-theme .auth-footer a { color: #3e5123; }.app-theme .back-to-home { color: var(--theme-muted); }.app-theme .back-to-home:hover { color: var(--theme-ink); }

/* Shared footer */
.app-theme .app-footer { background: #090b09; margin: 0; padding: 2.8rem clamp(1rem, 4vw, 4.5rem) 1.4rem; }
.app-footer-inner { align-items: center; display: grid; gap: 1rem 2rem; grid-template-columns: auto 1fr auto; margin: 0 auto 2.5rem; max-width: 1400px; }.app-footer .footer-brand { color: white; text-decoration: none; }.app-footer-inner > p { color: #7e857d; font-size: .75rem; margin: 0; }.app-footer-inner nav { display: flex; flex-wrap: wrap; gap: 1.4rem; }.app-footer-inner nav a { color: #b4bbb3; font-size: .72rem; text-decoration: none; }.app-footer-inner nav a:hover { color: var(--theme-lime); }
.app-footer-bottom { border-top: 1px solid #252a24; color: #676e66; display: flex; font-size: .68rem; justify-content: space-between; margin: 0 auto; max-width: 1400px; padding-top: 1.3rem; }

@media (max-width: 760px) {
  .app-theme .landing-header { padding: .8rem 1rem; }.app-theme .header-nav { gap: .7rem; }.app-theme .header-nav > .nav-link { font-size: .75rem; }.app-theme .page-shell { padding-top: 2rem; }.app-theme .docs-shell { display: block; padding-top: 2rem; }.app-theme .docs-nav { margin-bottom: 3rem; position: static; }.app-footer-inner { align-items: flex-start; grid-template-columns: 1fr; }.app-footer-bottom { gap: .5rem; }
}

@media (max-width: 480px) {
  .app-brand { font-size: .88rem; }.app-theme .x402-nav-badge { font-size: .5rem; padding: .28rem .38rem; }.app-theme .header-nav > .active-nav { display: none; }.app-theme .guest-login-link { display: none; }.app-theme .hero h1, .app-theme .legal-page-header h1 { font-size: clamp(2.8rem, 14vw, 4.2rem); }.app-theme .filters { padding: 1rem; }.app-footer-bottom { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
