/*
 * 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.
 */

:root {
  --seara-green: #123d32;
  --seara-green-light: #eaf2ed;
  --seara-gold: #b08a45;
  --seara-ink: #18312b;
  --seara-muted: #6c7b76;
  --seara-border: #dbe5df;
  --seara-cream: #f7f9f5;
}

body { color: var(--seara-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.public-body { min-height: 100vh; background: radial-gradient(circle at 12% 0%, #edf5ed, transparent 32rem), var(--seara-cream); }
.public-page { min-height: 100vh; display: flex; align-items: flex-start; justify-content: center; padding: 2rem 1rem 4rem; }
.public-card { width: 100%; max-width: 38rem; background: #fff; border: 1px solid #e5ece6; border-radius: 1.25rem; box-shadow: 0 18px 60px #123d3210; padding: 2rem; }
.public-heading { margin-bottom: 1.75rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--seara-green); }
.brand small { display: block; color: var(--seara-muted); font-size: .7rem; font-weight: 500; letter-spacing: .02em; }
.brand strong { display: block; font-size: 1.2rem; letter-spacing: -.03em; }
.brand-mark { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; color: #fff; background: var(--seara-green); border-radius: .75rem .35rem .75rem .35rem; font-family: Georgia, serif; font-size: 1.5rem; }
.brand-public { display: block; width: min(100%, 18rem); margin-bottom: 2.25rem; }
.public-logo { display: block; width: 100%; height: auto; }
.public-heading .brand-public { margin-right: auto; margin-left: auto; }
.success-card .brand-public { margin-right: auto; margin-left: auto; }
.eyebrow { display: block; color: var(--seara-gold); font-size: .7rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
h1, h2 { color: var(--seara-green); font-weight: 750; letter-spacing: -.035em; }
.public-heading h1 { margin-top: .45rem; font-size: clamp(1.8rem, 7vw, 2.45rem); line-height: 1.08; }
.public-heading p, .page-heading p { margin-top: .5rem; color: var(--seara-muted); }
.public-form, .admin-form { display: grid; gap: 1.15rem; }
.form-field { display: grid; gap: .4rem; }
.form-field label, .form-field legend, .filters-form label { color: var(--seara-ink); font-size: .86rem; font-weight: 700; }
.optional { color: var(--seara-muted); font-weight: 500; }
input:not([type="radio"]):not([type="checkbox"]), select, textarea { width: 100%; border: 1px solid var(--seara-border); border-radius: .65rem; background: #fff; padding: .75rem .85rem; color: var(--seara-ink); outline: none; transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { border-color: var(--seara-gold); box-shadow: 0 0 0 3px #b08a4520; }
.field-hint, .public-footnote { color: var(--seara-muted); font-size: .76rem; line-height: 1.45; }
.field-error { color: #a13c36; font-size: .78rem; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: .3rem; }
.choice-card { display: flex; align-items: center; gap: .55rem; border: 1px solid var(--seara-border); border-radius: .65rem; padding: .75rem; cursor: pointer; }
.choice-card:has(input:checked) { border-color: var(--seara-green); background: var(--seara-green-light); }
.choice-card input { accent-color: var(--seara-green); }
.context-divider { display: flex; align-items: center; gap: .75rem; color: var(--seara-gold); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.context-divider::after { content: ""; height: 1px; flex: 1; background: var(--seara-border); }
.manual-context { display: grid; gap: 1rem; }
.activity-card { margin: 0 0 1.5rem; padding: 1rem 1.1rem; border: 1px solid #d5e3d7; border-left: 4px solid var(--seara-gold); border-radius: .8rem; background: #f5faf4; }
.activity-card-label { color: var(--seara-gold); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.activity-card h2 { margin-top: .3rem; font-size: 1.05rem; letter-spacing: -.02em; }
.activity-card p { margin-top: .3rem; color: #51645d; font-size: .8rem; line-height: 1.45; }
.activity-card-date { font-weight: 650; }
.privacy-box { display: grid; gap: .8rem; margin-top: .3rem; padding: 1rem; border-radius: .7rem; background: #f7f8f5; color: #53635d; font-size: .77rem; line-height: 1.45; }
.privacy-box strong { color: var(--seara-green); }
.consent-line { display: flex; gap: .55rem; align-items: flex-start; color: var(--seara-ink); font-weight: 650; }
.consent-line input { margin-top: .2rem; accent-color: var(--seara-green); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 2.65rem; border: 1px solid transparent; border-radius: .6rem; padding: .65rem 1rem; font-size: .84rem; font-weight: 750; cursor: pointer; transition: transform .15s, background .15s; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--seara-green); color: #fff; }
.button-primary:hover { background: #0b3027; }
.button-secondary { border-color: var(--seara-border); background: #fff; color: var(--seara-green); }
.button-quiet { border: 0; min-height: auto; padding: .3rem .5rem; color: var(--seara-muted); background: transparent; }
.button-warn { background: #fff5ee; color: #9a4c2f; border-color: #f2d8c9; }
.button-large { width: 100%; min-height: 3.1rem; font-size: .94rem; }
.error-summary { padding: .85rem 1rem; border: 1px solid #efc7c2; border-radius: .65rem; background: #fff6f5; color: #8f342d; font-size: .8rem; }
.error-summary ul { margin-top: .35rem; padding-left: 1rem; list-style: disc; }
.flash-stack { width: 100%; max-width: 50rem; margin: 1rem auto; padding: 0 1rem; }
.flash { padding: .8rem 1rem; border-radius: .6rem; font-size: .82rem; }
.flash-alert { background: #fff3f1; color: #92372f; }
.flash-notice { background: #edf8ef; color: #28633a; }
.public-footnote { margin-top: 1.5rem; text-align: center; }
.success-card { text-align: center; }
.success-icon, .warning-icon { display: grid; place-items: center; width: 4rem; height: 4rem; margin: 1.25rem auto; border-radius: 50%; color: #fff; background: var(--seara-green); font-size: 2rem; }
.warning-icon { background: var(--seara-gold); font-weight: 800; }
.success-card h1 { font-size: 1.75rem; }
.success-card p { margin: .5rem 0 1.5rem; color: var(--seara-muted); }
.public-login-page { align-items: center; padding-top: 2rem; padding-bottom: 2rem; }
.login-card { max-width: 29rem; padding: 2.5rem; }
.login-brand { display: block; width: min(100%, 18rem); margin: 0 auto 2rem; }
.login-heading { margin-bottom: 1.75rem; text-align: center; }
.login-heading h1 { margin-top: .4rem; font-size: 1.85rem; }
.login-heading p { margin-top: .45rem; color: var(--seara-muted); font-size: .86rem; }
.login-form { text-align: left; }
.login-footnote { margin-top: 1.5rem; color: var(--seara-muted); font-size: .72rem; line-height: 1.45; text-align: center; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.admin-body { min-height: 100vh; background: var(--seara-cream); }
.admin-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; padding: .8rem 2rem; border-bottom: 1px solid var(--seara-border); background: #fff; }
.brand-admin small { font-size: .66rem; }
.admin-account { display: flex; align-items: center; gap: 1rem; color: var(--seara-muted); font-size: .82rem; }
.admin-layout { display: flex; max-width: 90rem; margin: 0 auto; }
.admin-sidebar { width: 14rem; flex: 0 0 14rem; padding: 2rem 1rem; }
.admin-sidebar nav { display: grid; gap: .35rem; position: sticky; top: 1rem; }
.admin-nav-link { padding: .7rem .85rem; border-radius: .55rem; color: var(--seara-muted); font-size: .86rem; font-weight: 650; }
.admin-nav-link:hover, .admin-nav-link.is-active { color: var(--seara-green); background: var(--seara-green-light); }
.admin-content { min-width: 0; flex: 1; padding: 2.25rem 2.5rem 4rem; }
.page-heading, .section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.page-heading { margin-bottom: 1.75rem; }
.page-heading h1 { margin-top: .25rem; font-size: 2rem; }
.heading-actions, .form-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.metric-card { padding: 1.2rem; border: 1px solid var(--seara-border); border-radius: .85rem; background: #fff; }
.metric-card span { color: var(--seara-muted); font-size: .75rem; font-weight: 650; }
.metric-card strong { display: block; margin-top: .45rem; color: var(--seara-green); font-size: 1.9rem; letter-spacing: -.05em; }
.metric-card-accent { border-color: #e6d7b9; background: #fffdf6; }
.content-section { margin-top: 1.6rem; padding: 1.35rem; border: 1px solid var(--seara-border); border-radius: .85rem; background: #fff; }
.section-heading h2, .content-section > h2 { margin-top: .25rem; font-size: 1.2rem; }
.table-wrap { overflow-x: auto; margin: 1rem -1.35rem -1.35rem; }
.data-table { width: 100%; min-width: 44rem; font-size: .8rem; text-align: left; }
.data-table th { padding: .7rem 1.35rem; border-bottom: 1px solid var(--seara-border); color: var(--seara-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.data-table td { padding: .85rem 1.35rem; border-bottom: 1px solid #edf1ed; vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }
.table-link, .text-link { color: var(--seara-green); font-weight: 700; }
.text-link:hover, .table-link:hover { text-decoration: underline; }
.badge { display: inline-flex; padding: .28rem .55rem; border-radius: 999px; background: #eef2ef; color: #50645b; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.badge-green { background: #e7f3e9; color: #28713b; }.badge-muted { background: #f0f1f0; color: #78817d; }
.empty-state { padding: 2rem 1rem; text-align: center; color: var(--seara-muted); }.empty-state strong { color: var(--seara-green); }.empty-state p { margin-top: .35rem; font-size: .82rem; }
.filters-section { padding: 1rem 1.35rem; }.filters-form { display: flex; align-items: flex-end; flex-wrap: wrap; gap: .75rem; }.filters-form .form-field { min-width: 10rem; flex: 1; }.filters-form .form-field:first-child { min-width: 15rem; }.filter-submit { flex: 0 0 auto; }
.form-section { max-width: 62rem; }.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }.form-field-wide { grid-column: 1 / -1; }.admin-form .form-actions { margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--seara-border); }
.detail-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; align-items: start; }.detail-grid .content-section { margin-top: 0; }.detail-list { display: grid; gap: .8rem; margin-top: 1.2rem; }.detail-list div { display: grid; grid-template-columns: 10rem 1fr; gap: 1rem; padding-bottom: .7rem; border-bottom: 1px solid #edf1ed; }.detail-list dt { color: var(--seara-muted); font-size: .78rem; }.detail-list dd { font-size: .86rem; font-weight: 600; }.share-card p { margin: .7rem 0 1rem; color: var(--seara-muted); font-size: .8rem; line-height: 1.5; }.public-url { display: grid; gap: .6rem; margin-bottom: .8rem; }.public-url code { overflow-wrap: anywhere; padding: .7rem; border-radius: .5rem; background: #f2f5f1; color: var(--seara-green); font-size: .72rem; }.public-url .button { justify-self: start; }.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-top: 1.25rem; color: var(--seara-muted); font-size: .8rem; }.pagination .disabled { pointer-events: none; opacity: .45; }
@media (max-width: 800px) { .admin-header { padding: .8rem 1rem; }.admin-account > span { display: none; }.admin-layout { display: block; }.admin-sidebar { width: auto; padding: .6rem 1rem 0; }.admin-sidebar nav { display: flex; overflow-x: auto; position: static; }.admin-nav-link { white-space: nowrap; }.admin-content { padding: 1.25rem 1rem 3rem; }.metric-grid { grid-template-columns: repeat(2, 1fr); }.detail-grid { grid-template-columns: 1fr; }.page-heading { align-items: stretch; flex-direction: column; }.heading-actions { justify-content: flex-start; } }
@media (max-width: 520px) { .public-page { padding: 0; }.public-card { min-height: 100vh; border: 0; border-radius: 0; padding: 1.5rem 1.1rem 2.5rem; }.choice-grid, .form-grid { grid-template-columns: 1fr; }.form-field-wide { grid-column: auto; }.metric-grid { gap: .6rem; }.metric-card { padding: .85rem; }.metric-card strong { font-size: 1.5rem; }.content-section { padding: 1rem; }.table-wrap { margin-left: -1rem; margin-right: -1rem; } }
