:root{--jpb-primary:#2563eb;--jpb-primary-hover:#1d4ed8;--jpb-secondary:#64748b;--jpb-success:#16a34a;--jpb-danger:#dc2626;--jpb-warning:#f59e0b;--jpb-bg:#f8fafc;--jpb-bg-card:#ffffff;--jpb-text:#1e293b;--jpb-text-light:#64748b;--jpb-border:#e2e8f0;--jpb-space-1:4px;--jpb-space-2:8px;--jpb-space-3:12px;--jpb-space-4:16px;--jpb-space-5:24px;--jpb-space-6:32px;--jpb-space-7:48px;--jpb-space-8:64px;--jpb-text-xs:11px;--jpb-text-sm:13px;--jpb-text-base:14px;--jpb-text-md:16px;--jpb-text-lg:20px;--jpb-text-xl:24px;--jpb-text-2xl:28px;--jpb-radius:8px;--jpb-radius-sm:4px;--jpb-shadow:0 1px 3px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.06);--jpb-shadow-lg:0 4px 6px rgba(0,0,0,0.07),0 10px 15px rgba(0,0,0,0.1);--jpb-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,sans-serif;--jpb-gap:var(--jpb-space-4);--jpb-gap-lg:var(--jpb-space-5)}.jpb-container{max-width:1200px;margin:0 auto;padding:0 var(--jpb-gap)}.jpb-notice{padding:12px 16px;border-radius:var(--jpb-radius-sm);margin-bottom:var(--jpb-gap);font-size:14px;line-height:1.5}.jpb-notice--success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.jpb-notice--error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.jpb-notice--warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.jpb-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:var(--jpb-radius-sm);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .2s,opacity .2s;line-height:1.4}.jpb-btn:disabled,.jpb-loading{opacity:.6;cursor:not-allowed}.jpb-btn--primary{background:var(--jpb-primary);color:#fff}.jpb-btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--jpb-primary) 85%,black)}.jpb-btn--secondary{background:var(--jpb-bg);color:var(--jpb-text);border:1px solid var(--jpb-border)}.jpb-btn--secondary:hover:not(:disabled){background:color-mix(in srgb,var(--jpb-bg) 80%,var(--jpb-border))}.jpb-btn--danger{background:var(--jpb-danger);color:#fff}.jpb-btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--jpb-danger) 85%,black)}.jpb-btn--small{padding:6px 12px;font-size:12px}.jpb-btn--full{width:100%;justify-content:center}.jpb-input,.jpb-select,.jpb-textarea{width:100%;padding:10px 12px;border:1px solid var(--jpb-border);border-radius:var(--jpb-radius-sm);font-size:14px;font-family:var(--jpb-font);background:#fff;color:var(--jpb-text);transition:border-color .2s;box-sizing:border-box}.jpb-input:focus,.jpb-select:focus,.jpb-textarea:focus{outline:none;border-color:var(--jpb-primary);box-shadow:0 0 0 3px rgba(37,99,235,0.1)}.jpb-field--error{border-color:var(--jpb-danger) !important}.jpb-field-error{color:var(--jpb-danger);font-size:12px;margin-top:4px}.jpb-textarea{min-height:100px;resize:vertical}.jpb-field-row{margin-bottom:var(--jpb-gap)}.jpb-field-row label{display:block;font-size:14px;font-weight:500;margin-bottom:4px;color:var(--jpb-text)}.jpb-job-cards{display:grid;grid-template-columns:1fr;gap:var(--jpb-gap);container-type:inline-size;container-name:jpb-cards}.jpb-job-card{background:var(--jpb-bg-card);border:1px solid var(--jpb-border);border-radius:var(--jpb-radius);padding:var(--jpb-gap);transition:box-shadow .2s;position:relative}.jpb-job-card:hover{box-shadow:var(--jpb-shadow-lg);border-color:color-mix(in srgb,var(--jpb-border) 60%,var(--jpb-primary))}.jpb-job-card--featured{border-color:var(--jpb-warning);border-width:2px}.jpb-job-card__header{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.jpb-job-card__logo{width:48px;height:48px;border-radius:var(--jpb-radius-sm);object-fit:cover;flex-shrink:0}.jpb-job-card__logo-placeholder{width:48px;height:48px;border-radius:var(--jpb-radius-sm);background:var(--jpb-bg);flex-shrink:0}.jpb-job-card__title{font-size:16px;margin:0 0 4px;line-height:1.3}.jpb-job-card__title a{color:var(--jpb-text);text-decoration:none}.jpb-job-card__title a:hover{color:var(--jpb-primary)}.jpb-job-card__company{font-size:13px;color:var(--jpb-text-light);text-decoration:none}.jpb-job-card__meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.jpb-job-card__type,.jpb-job-card__location,.jpb-job-card__salary{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 8px;border-radius:12px;background:var(--jpb-bg);color:var(--jpb-text-light)}.jpb-job-card__excerpt{font-size:13px;color:var(--jpb-text-light);margin:0 0 12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.jpb-job-card__footer{display:flex;justify-content:space-between;align-items:center}.jpb-job-card__date{font-size:12px;color:var(--jpb-text-light)}.jpb-job-card__badge{position:absolute;top:8px;right:8px;background:var(--jpb-warning);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px}.jpb-save-job{background:none;border:none;cursor:pointer;padding:4px;color:var(--jpb-text-light);transition:color .2s}.jpb-save-job:hover,.jpb-save-job.jpb-saved{color:var(--jpb-danger)}.jpb-search-form{background:var(--jpb-bg-card);border:1px solid var(--jpb-border);border-radius:var(--jpb-radius);padding:var(--jpb-gap);margin-bottom:var(--jpb-gap-lg)}.jpb-search-form__fields{display:grid;grid-template-columns:1fr;gap:12px}.jpb-search-form__actions{margin-top:12px}.jpb-search-count{font-size:14px;color:var(--jpb-text-light);margin-bottom:var(--jpb-gap)}.jpb-search-results--loading{opacity:.5;pointer-events:none}@keyframes jpb-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.jpb-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 37%,#f0f0f0 63%);background-size:200% 100%;animation:jpb-shimmer 1.5s ease-in-out infinite;border-radius:var(--jpb-radius-sm)}.jpb-skeleton-card{background:var(--jpb-bg-card);border:1px solid var(--jpb-border);border-radius:var(--jpb-radius);padding:var(--jpb-gap)}.jpb-skeleton-card__header{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.jpb-skeleton-card__logo{width:48px;height:48px;flex-shrink:0}.jpb-skeleton-card__title{height:16px;width:70%;margin-bottom:8px}.jpb-skeleton-card__company{height:13px;width:40%}.jpb-skeleton-card__meta{display:flex;gap:8px;margin-bottom:12px}.jpb-skeleton-card__tag{height:22px;width:80px;border-radius:12px}.jpb-skeleton-card__excerpt{height:13px;width:100%;margin-bottom:6px}.jpb-skeleton-card__excerpt--short{width:60%}.jpb-skeleton-card__footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.jpb-skeleton-card__date{height:12px;width:80px}.jpb-skeleton-card__btn{height:24px;width:24px;border-radius:50%}.jpb-pagination{display:flex;justify-content:center;gap:4px;padding:var(--jpb-gap-lg) 0}.jpb-pagination__btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid var(--jpb-border);border-radius:var(--jpb-radius-sm);background:#fff;color:var(--jpb-text);font-size:14px;cursor:pointer;transition:all .2s}.jpb-pagination__btn:hover{background:color-mix(in srgb,var(--jpb-bg) 50%,var(--jpb-border))}.jpb-pagination__btn--active{background:var(--jpb-primary);color:#fff;border-color:var(--jpb-primary)}.jpb-company-cards{display:grid;grid-template-columns:1fr;gap:var(--jpb-gap);container-type:inline-size;container-name:jpb-company-cards}.jpb-company-card{background:var(--jpb-bg-card);border:1px solid var(--jpb-border);border-radius:var(--jpb-radius);padding:var(--jpb-gap);text-align:center}.jpb-company-card__logo{width:80px;height:80px;border-radius:50%;object-fit:cover;margin:0 auto 12px}.jpb-company-card__name{font-size:16px;font-weight:600;margin:0 0 4px}.jpb-company-card__name a{color:var(--jpb-text);text-decoration:none}.jpb-company-card__industry,.jpb-company-card__location{font-size:13px;color:var(--jpb-text-light)}.jpb-company-card__jobs{margin-top:8px;font-size:13px;font-weight:500;color:var(--jpb-primary)}.jpb-rating-input{display:flex;gap:4px}.jpb-rating-star{background:none;border:none;cursor:pointer;font-size:24px;color:#d1d5db;padding:0;line-height:1}.jpb-rating-star.jpb-star--active{color:var(--jpb-warning)}.jpb-rating-display{display:flex;align-items:center;gap:4px;font-size:14px}.jpb-avg-rating-value{font-weight:600}.jpb-rating-count{color:var(--jpb-text-light);font-size:13px}.jpb-modal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.5);align-items:center;justify-content:center;padding:var(--jpb-gap)}.jpb-modal--open{display:flex}.jpb-modal__content{background:#fff;border-radius:var(--jpb-radius);padding:var(--jpb-gap-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.jpb-modal__close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:20px;cursor:pointer;color:var(--jpb-text-light);padding:4px}.jpb-share-buttons{display:flex;gap:8px;flex-wrap:wrap}.jpb-share-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--jpb-border);border-radius:var(--jpb-radius-sm);background:#fff;font-size:13px;cursor:pointer;text-decoration:none;color:var(--jpb-text);transition:background .2s}.jpb-share-btn:hover{background:color-mix(in srgb,var(--jpb-bg) 50%,var(--jpb-border))}.jpb-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500}.jpb-status--active{background:#dcfce7;color:#166534}.jpb-status--paused{background:#fef3c7;color:#92400e}.jpb-status--expired{background:#fee2e2;color:#991b1b}.jpb-status--draft{background:#f1f5f9;color:#475569}.jpb-visibility-indicator{font-size:11px;padding:2px 6px;border-radius:4px}.jpb-visibility--public{background:#dcfce7;color:#166534}.jpb-visibility--logged_in{background:#dbeafe;color:#1e40af}.jpb-visibility--employer_only{background:#fef3c7;color:#92400e}.jpb-visibility--jobseeker_only{background:#ede9fe;color:#5b21b6}.jpb-visibility--hidden{background:#f1f5f9;color:#64748b}.jpb-file-preview__img{max-width:120px;max-height:120px;border-radius:var(--jpb-radius-sm);margin-top:8px}.jpb-file-preview__name{font-size:13px;color:var(--jpb-text-light);margin-top:4px;display:block}.jpb-section-title{font-size:20px;font-weight:600;margin:0 0 var(--jpb-gap);color:var(--jpb-text)}@media (min-width:600px){.jpb-job-cards{grid-template-columns:repeat(2,1fr)}.jpb-company-cards{grid-template-columns:repeat(2,1fr)}.jpb-search-form__fields{grid-template-columns:repeat(2,1fr)}}@media (min-width:960px){.jpb-job-cards{grid-template-columns:repeat(3,1fr)}.jpb-company-cards{grid-template-columns:repeat(3,1fr)}.jpb-search-form__fields{grid-template-columns:repeat(4,1fr)}.jpb-container{padding:0 var(--jpb-gap-lg)}}@media (min-width:1200px){.jpb-job-cards.jpb-view--grid{grid-template-columns:repeat(4,1fr)}.jpb-company-cards{grid-template-columns:repeat(4,1fr)}}.jpb-job-cards.jpb-view--list .jpb-job-card{display:grid;grid-template-columns:1fr;gap:8px}@media (min-width:600px){.jpb-job-cards.jpb-view--list{grid-template-columns:1fr}.jpb-job-cards.jpb-view--list .jpb-job-card{grid-template-columns:auto 1fr auto;align-items:center}}.jpb-single-job{max-width:800px;margin:0 auto}.jpb-single-job__header{margin-bottom:var(--jpb-gap-lg)}.jpb-single-job__title{font-size:24px;margin:0 0 8px}.jpb-single-job__meta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:var(--jpb-gap)}.jpb-single-job__content{line-height:1.7;font-size:15px}.jpb-single-job__sidebar{margin-top:var(--jpb-gap-lg)}@media (min-width:960px){.jpb-single-job{max-width:100%;display:grid;grid-template-columns:1fr 320px;gap:var(--jpb-gap-lg)}.jpb-single-job__sidebar{margin-top:0}.jpb-single-job__title{font-size:28px}}.jpb-single-company__header{display:flex;gap:var(--jpb-gap);align-items:center;margin-bottom:var(--jpb-gap-lg);flex-wrap:wrap}.jpb-single-company__logo{width:80px;height:80px;border-radius:var(--jpb-radius);object-fit:cover}.jpb-single-company__name{font-size:24px;margin:0}.jpb-single-company__slogan{color:var(--jpb-text-light);font-size:14px;margin:4px 0 0}.jpb-content--truncated{overflow:hidden;position:relative}.jpb-content--truncated::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,var(--jpb-bg-card));pointer-events:none}.jpb-read-more{margin-top:var(--jpb-space-3)}.jpb-lazy-section__placeholder{padding:var(--jpb-gap)}@container jpb-cards (min-width:500px){.jpb-job-cards{grid-template-columns:repeat(2,1fr)}}@container jpb-cards (min-width:800px){.jpb-job-cards{grid-template-columns:repeat(3,1fr)}}@container jpb-cards (min-width:1100px){.jpb-job-cards.jpb-view--grid{grid-template-columns:repeat(4,1fr)}}@container jpb-company-cards (min-width:500px){.jpb-company-cards{grid-template-columns:repeat(2,1fr)}}@container jpb-company-cards (min-width:800px){.jpb-company-cards{grid-template-columns:repeat(3,1fr)}}@container jpb-company-cards (min-width:1100px){.jpb-company-cards{grid-template-columns:repeat(4,1fr)}}.jpb-map{width:100%;height:300px;border-radius:var(--jpb-radius);margin:var(--jpb-gap) 0}