.rally-app { max-width: 1180px; }
.catalog-status { border: 1px solid var(--line); border-radius: 999px; padding: 9px 13px; color: var(--muted); background: var(--surface); font-size: .72rem; font-weight: 800; }
.rally-link { color: #83cef2; font-size: .76rem; font-weight: 800; text-decoration: none; }
.rally-hero { min-height: 390px; padding: 58px 0 46px; display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: center; gap: 42px; }
.rally-hero h1 { max-width: 750px; margin-bottom: 20px; }
.rally-hero h1 span { color: #54b8ee; }
.rally-hero .lede { max-width: 680px; line-height: 1.7; }
.rally-orbit { position: relative; width: 275px; height: 275px; margin: auto; border: 1px solid rgba(84,184,238,.18); border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle, rgba(84,184,238,.13), transparent 62%); }
.rally-orbit::before, .rally-orbit::after { content: ""; position: absolute; border: 1px solid rgba(84,184,238,.16); border-radius: 50%; }
.rally-orbit::before { inset: 38px; }.rally-orbit::after { inset: 82px; }
.rally-orbit strong { width: 78px; height: 78px; border-radius: 24px; display: grid; place-items: center; color: #06111d; background: linear-gradient(145deg, #84d3f5, #429fd2); box-shadow: 0 18px 50px rgba(42,151,211,.3); font-size: 1.7rem; }
.rally-orbit i { position: absolute; width: 15px; height: 15px; border: 3px solid #06111d; border-radius: 50%; box-shadow: 0 0 0 5px rgba(255,255,255,.04); }
.rally-orbit i:nth-child(1) { top: 23px; left: 89px; background: #222; }.rally-orbit i:nth-child(2) { top: 75px; right: 19px; background: #56d890; }.rally-orbit i:nth-child(3) { bottom: 19px; right: 81px; background: #f3ae5e; }.rally-orbit i:nth-child(4) { bottom: 61px; left: 23px; background: #ed6969; }.rally-orbit i:nth-child(5) { top: 72px; left: 33px; background: #54b8ee; }
.access-card, .publish-panel { margin-bottom: 26px; border: 1px solid var(--line); border-radius: 22px; padding: 28px; background: linear-gradient(145deg, rgba(84,184,238,.06), transparent), var(--surface); }
.button-link { min-height: 46px; border-radius: 10px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-weight: 800; }
.access-card { text-align: center; }.access-card p:not(.eyebrow) { color: var(--muted); }.access-card a { width: fit-content; margin: 20px auto 0; }
.section-title { margin-bottom: 24px; display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }.section-title h2 { margin: 0; font-size: 2rem; }.section-title > p { max-width: 480px; margin: 0; color: var(--muted); text-align: right; line-height: 1.5; }
.plan-drop { min-height: 112px; border: 1px dashed #38566e; border-radius: 17px; padding: 21px; display: flex; align-items: center; gap: 17px; background: rgba(3,13,22,.42); cursor: pointer; transition: .2s; }.plan-drop:hover, .plan-drop.has-file { border-color: #54b8ee; background: rgba(84,184,238,.06); }.plan-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }.plan-drop-icon { width: 50px; height: 50px; flex: 0 0 50px; border-radius: 14px; display: grid; place-items: center; color: #06111d; background: #68bee9; font-size: 1.35rem; }.plan-drop > span:last-child { display: grid; gap: 5px; }.plan-drop strong { color: var(--text); font-size: 1rem; }.plan-drop small { color: var(--muted); }
.publish-fields { margin-top: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }.notes-field { grid-column: 1 / -1; }.notes-field textarea { resize: vertical; }
.publish-actions { margin-top: 18px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }.publish-actions p { margin: 0; color: var(--muted); }.publish-actions p.error { color: var(--danger); }.publish-actions button { min-width: 235px; }
.catalog-section { padding: 36px 0 70px; }.catalog-heading { align-items: center; }.archived-toggle { width: auto; grid-template-columns: auto auto; align-items: center; cursor: pointer; }.archived-toggle input { width: 18px; min-height: 18px; accent-color: #54b8ee; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }.project-card { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 19px; padding: 21px; background: linear-gradient(145deg, rgba(255,255,255,.025), transparent), var(--surface); }.project-card.archived { opacity: .55; }.project-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #54b8ee; }.project-card header { display: flex; justify-content: space-between; gap: 16px; }.project-card h3 { margin: 0; font-size: 1.2rem; }.project-card header small { color: var(--muted); }.project-badge { height: fit-content; border: 1px solid rgba(84,184,238,.3); border-radius: 999px; padding: 5px 8px; color: #83cef2; background: rgba(84,184,238,.07); font-size: .63rem; font-weight: 900; white-space: nowrap; text-transform: uppercase; }.project-meta { margin: 18px 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }.project-meta div { border: 1px solid rgba(255,255,255,.06); border-radius: 10px; padding: 10px; background: rgba(255,255,255,.018); }.project-meta span { display: block; color: var(--muted); font-size: .62rem; text-transform: uppercase; }.project-meta strong { display: block; margin-top: 4px; font-size: .88rem; }.project-references, .project-notes { color: var(--muted); font-size: .79rem; line-height: 1.5; }.project-notes { min-height: 38px; }.project-footer { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 15px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }.project-footer small { color: var(--muted); }.project-actions { display: flex; gap: 8px; }.project-actions a, .project-actions button { min-height: 40px; padding: 0 12px; font-size: .75rem; }.archive-button { border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: transparent; cursor: pointer; }
.project-documents { margin-top: 13px; border: 1px solid rgba(84,184,238,.16); border-radius: 11px; padding: 11px; display: grid; gap: 7px; background: rgba(84,184,238,.035); }.project-documents > strong { color: #83cef2; font-size: .68rem; text-transform: uppercase; }.project-documents span { color: var(--text); font-size: .78rem; }.project-documents small { display: block; color: var(--muted); }.attachment-form { margin-top: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.attachment-form select { min-height: 42px; }.attachment-picker { min-height: 42px; border: 1px dashed #38566e; border-radius: 10px; display: grid; place-items: center; color: #83cef2; cursor: pointer; }.attachment-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }.attachment-picker span { font-size: .75rem; font-weight: 800; }
.catalog-loading, .catalog-empty { grid-column: 1 / -1; border: 1px dashed var(--line); border-radius: 18px; padding: 46px; color: var(--muted); text-align: center; }
.terrain-section { padding: 6px 0 90px; }
.terrain-divider { margin: 0 0 44px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; color: #55dfa0; }
.terrain-divider span { height: 1px; background: linear-gradient(90deg, transparent, rgba(85,223,160,.34)); }
.terrain-divider span:last-child { background: linear-gradient(90deg, rgba(85,223,160,.34), transparent); }
.terrain-divider b { width: 38px; height: 38px; border: 1px solid rgba(85,223,160,.35); border-radius: 50%; display: grid; place-items: center; background: rgba(85,223,160,.06); }
.terrain-heading { margin-bottom: 24px; }
.terrain-heading .eyebrow { color: #55dfa0; }
.terrain-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.terrain-card { position: relative; overflow: hidden; border: 1px solid rgba(85,223,160,.23); border-radius: 19px; padding: 21px; background: linear-gradient(145deg, rgba(85,223,160,.055), transparent 48%), var(--surface); }
.terrain-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: #55dfa0; }
.terrain-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.terrain-card h3 { margin: 2px 0 0; font-size: 1.2rem; }
.terrain-kicker { margin: 0; color: #7ce8b5; font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.kmz-badge { border: 1px solid rgba(85,223,160,.4); border-radius: 999px; padding: 6px 9px; color: #7ce8b5; background: rgba(85,223,160,.08); font-size: .65rem; font-weight: 900; }
.deliverable-badges { display: flex; align-items: center; gap: 8px; }
.pdf-badge { border: 1px solid rgba(239,116,108,.55); color: #ffb0aa; background: rgba(153,39,35,.22); border-radius: 999px; padding: 6px 9px; font-size: .65rem; font-weight: 900; }
.terrain-references { margin: 18px 0 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.terrain-references div, .terrain-meta div { border: 1px solid rgba(255,255,255,.06); border-radius: 10px; padding: 10px; background: rgba(255,255,255,.018); }
.terrain-references dt, .terrain-meta span { color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.terrain-references dd { margin: 5px 0 0; color: var(--text); font-size: .82rem; font-weight: 800; }
.terrain-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.terrain-meta span, .terrain-meta strong { display: block; }
.terrain-meta strong { margin-top: 4px; font-size: .9rem; }
.terrain-footer { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 15px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.terrain-footer small { color: var(--muted); line-height: 1.45; }
.terrain-footer small strong { color: var(--text); }
.terrain-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.pdf-download { background: linear-gradient(135deg, #bb3f38, #8f2722); }
.terrain-download { min-height: 43px; padding: 0 14px; font-size: .72rem; text-transform: uppercase; }
.catalog-error { grid-column: 1 / -1; border: 1px solid rgba(255,123,118,.4); border-radius: 18px; padding: 36px; color: var(--muted); background: rgba(255,123,118,.045); text-align: center; }
.catalog-error strong { color: var(--danger); font-size: 1rem; }
.catalog-error p { margin: 8px 0 18px; }
.catalog-error button { min-height: 40px; padding: 0 15px; }
.rally-toast { position: fixed; left: 50%; bottom: 24px; z-index: 20; transform: translate(-50%, 20px); border: 1px solid rgba(85,223,160,.45); border-radius: 12px; padding: 13px 18px; color: var(--success); background: #10212a; opacity: 0; pointer-events: none; transition: .2s; }.rally-toast.show { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 800px) { .rally-hero { min-height: 0; grid-template-columns: 1fr; }.rally-orbit { width: 220px; height: 220px; }.section-title { align-items: flex-start; flex-direction: column; }.section-title > p { text-align: left; }.publish-fields, .project-grid, .terrain-grid { grid-template-columns: 1fr; }.publish-actions, .project-footer, .terrain-footer { align-items: stretch; flex-direction: column; }.publish-actions button, .terrain-download { width: 100%; }.terrain-actions { justify-content: stretch; }.terrain-actions .terrain-download { flex: 1 1 100%; }.project-actions { width: 100%; }.project-actions > * { flex: 1; }.brand-back { display: none; } }
