:root{--bg:#f7f6f3;--surface:#ffffff;--text:#1a1a18;--text-muted:#5c5b56;--border:#e4e2dc;--accent:#2d4a3e;--accent-soft:#e8f0ec;--radius:10px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}*,:after,:before{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.55;color:var(--text);background:var(--bg);min-height:100vh}a{color:inherit}.layout{max-width:44rem;margin:0 auto;padding:2rem 1.25rem 4rem}.site-header{margin-bottom:2.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.site-title{margin:0;font-size:1.65rem;font-weight:650;letter-spacing:-.02em}.site-tagline{margin:.4rem 0 0;font-size:1rem;color:var(--text-muted);max-width:28rem}.job-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;margin-bottom:1.75rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.job-filters__field{display:flex;flex-direction:column;gap:.25rem;flex:1 1 10rem;min-width:0}.job-filters__field--narrow{flex:0 0 6.5rem;max-width:7rem}.job-filters__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.job-filters__input,.job-filters__select{font:inherit;padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.job-filters__submit{font:inherit;font-weight:600;padding:.55rem 1rem;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.job-filters__submit:hover{opacity:.92}.job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.job-card{display:block;text-decoration:none;padding:1.1rem 1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease}.job-card:hover{border-color:#c9c5bc;box-shadow:0 2px 12px rgba(0,0,0,.04)}.job-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.job-card__title{margin:0;font-size:1.08rem;font-weight:600;letter-spacing:-.01em;line-height:1.35}.job-card__score{flex-shrink:0;font-size:.7rem;font-weight:700;padding:.2rem .45rem;border-radius:4px;background:var(--accent-soft);color:var(--accent)}.job-card__company{margin:.35rem 0 0;font-size:.92rem;color:var(--text-muted)}.job-card__meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;margin-top:.5rem;font-size:.82rem;color:var(--text-muted)}.job-card__loc--muted{font-style:italic}.job-card__desc{margin:.65rem 0 0;font-size:.88rem;color:var(--text);opacity:.88;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.job-card__cta{display:inline-block;margin-top:.75rem;font-size:.82rem;font-weight:600;color:var(--accent)}.empty-state,.error-state{padding:2rem 1.25rem;text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.empty-state__title,.error-state__title{margin:0;font-size:1.1rem;font-weight:600}.empty-state__hint,.error-state__hint{font-size:.9rem;color:var(--text-muted);max-width:26rem;margin:.5rem auto 0}.error-state__detail{margin:.35rem 0 0;font-size:.85rem;color:#8b2e2e;word-break:break-word}.inline-code{font-size:.88em;padding:.1em .35em;border-radius:4px;background:var(--accent-soft)}.loading-state{padding:3rem 1rem;text-align:center;color:var(--text-muted);font-size:.95rem}.loading-state__pulse{display:inline-block;width:2rem;height:2rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.footer-note{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--text-muted)}.footer-copyright{margin:.75rem 0 0;font-size:.78rem;color:var(--text-muted);text-align:center}