:root { --color-bg: #f7f7f5; --color-surface: #ffffff; --color-surface-alt: #f0f1ef; --color-text: #151715; --color-muted: #686c6a; --color-border: #dedfdb; --color-accent: #1f5eff; --color-accent-dark: #1746bd; --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; --shadow-sm: 0 1px 2px rgba(20, 23, 20, .04); --shadow-md: 0 10px 30px rgba(20, 23, 20, .08); } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { background: var(--color-bg); color: var(--color-text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: -0.01em; } a { color: var(--color-accent); text-decoration-thickness: .08em; text-underline-offset: .18em; } a:hover { color: var(--color-accent-dark); } .site-header { background: rgba(247, 247, 245, .92); border-bottom: 1px solid var(--color-border); backdrop-filter: blur(10px); } .navbar { min-height: 64px; } .navbar-brand { display: inline-flex; align-items: center; gap: .55rem; font-weight: 650; color: var(--color-text); } .brand-mark { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--color-text); border-radius: var(--radius-sm); font-size: .72rem; letter-spacing: .04em; } .hero-section { background: var(--color-bg); } .eyebrow { color: var(--color-muted); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; } .lead { font-size: 1.05rem; } .btn { border-radius: var(--radius-sm); font-weight: 650; padding: .55rem .8rem; } .btn-sm { padding: .42rem .62rem; } .btn-primary { background: var(--color-accent); border-color: var(--color-accent); } .btn-primary:hover, .btn-primary:focus { background: var(--color-accent-dark); border-color: var(--color-accent-dark); } .btn-dark { background: var(--color-text); border-color: var(--color-text); } .btn-outline-secondary { color: var(--color-text); border-color: var(--color-border); background: var(--color-surface); } .btn-outline-secondary:hover { background: var(--color-surface-alt); color: var(--color-text); border-color: #c9cac6; } .search-panel, .metric-card, .listing-card, .detail-card, .detail-sidebar, .form-card, .empty-state, .notice-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); } .search-panel { padding: 1rem; } .metric-card, .detail-sidebar, .form-card, .empty-state { padding: 1.25rem; } .detail-card { padding: 1.5rem; } .listing-card { position: relative; padding: 1.1rem; transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease; } .listing-card:hover { border-color: #c3c5bf; transform: translateY(-2px); box-shadow: var(--shadow-md); } .listing-card h3 a { color: var(--color-text); text-decoration: none; } .category-chip, .status-pill { display: inline-flex; align-items: center; border-radius: 999px; font-size: .75rem; font-weight: 700; line-height: 1; padding: .42rem .58rem; } .category-chip { background: var(--color-surface-alt); color: #2c302d; border: 1px solid var(--color-border); } .status-pill { background: #eef4ff; color: #1847a3; border: 1px solid #d7e4ff; } .status-pending { background: #fff8e6; color: #785300; border-color: #f2dfaa; } .metric-number { display: block; font-size: 3rem; line-height: 1; letter-spacing: -.06em; } .map-shell { position: relative; min-height: 188px; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background-color: #edeee9; background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"%3E%3Cpath d="M0 0H28M0 0V28" fill="none" stroke="%23dfe1dc" stroke-width="1"/%3E%3C/svg%3E'); background-size: 28px 28px; } .map-shell.compact { min-height: 150px; } .pin { position: absolute; width: 12px; height: 12px; background: var(--color-accent); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 5px rgba(31, 94, 255, .14); } .pin-one { top: 28%; left: 22%; } .pin-two { top: 52%; left: 58%; } .pin-three { top: 36%; left: 78%; } .listing-meta { display: grid; gap: .25rem; color: var(--color-muted); font-size: .92rem; } .clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .subtle-link { font-weight: 700; font-size: .92rem; } .empty-state { text-align: center; padding: 2.25rem 1.25rem; } .notice-card { padding: 1rem; } .form-label { color: #383b38; font-size: .86rem; font-weight: 650; } .form-control, .form-select { border-color: var(--color-border); border-radius: var(--radius-sm); padding: .62rem .72rem; } .form-control:focus, .form-select:focus { border-color: var(--color-accent); box-shadow: 0 0 0 .2rem rgba(31, 94, 255, .12); } .toast-line { margin-bottom: 1rem; border: 1px solid #cfe2d1; background: #f2fbf3; color: #1d5124; border-radius: var(--radius-md); padding: .85rem 1rem; transition: opacity .2s ease; } .toast-line.is-hiding { opacity: 0; } .site-footer { background: var(--color-surface); } @media (max-width: 767.98px) { .display-6 { font-size: 2rem; } .search-panel, .metric-card, .detail-card, .detail-sidebar, .form-card { padding: 1rem; } }