:root{--blue:#0757a4;--navy:#001e74;--sky:#2cb9f7;--orange:#ff7300;--ink:#263444;--muted:#5c6c7c;--line:#dce3eb;--pale:#f2f7fb;--green:#167154;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;color:var(--ink);font-size:15px;line-height:1.7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#fff}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button,.btn{min-height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #0757a4;outline-offset:3px}button{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:9px 17px;font-weight:700}button:hover{background:#f2f7fb}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:12px 24px;border:0;border-radius:6px;background:var(--orange);color:#fff;font-weight:700;text-align:center}.btn:hover{background:#e96500;text-decoration:none}.btn.blue{background:var(--blue)}.btn.outline{background:#fff;color:var(--blue);border:1px solid var(--blue)}.btn.small{padding:7px 16px}.wrap{width:min(1080px,calc(100% - 40px));margin:auto}.muted{color:var(--muted)}.tiny{font-size:12px}.eyebrow{font-size:11px;letter-spacing:.17em;color:var(--blue);font-weight:800}.demo-bar{background:#fff5e9;color:#8a4600;text-align:center;padding:6px 18px;font-size:11px;border-bottom:1px solid #ffe1ba}.site-header{border-top:7px solid var(--blue);border-bottom:1px solid var(--line);background:#fff}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:91px;gap:20px}.brand{display:flex;align-items:center;gap:10px;line-height:1.2;color:var(--blue);white-space:nowrap}.brand:hover{text-decoration:none}.header-links{display:flex;align-items:center;gap:25px;font-size:12px}.header-links a:first-child{color:var(--ink)}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px;font-size:11px}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}h1,h2,h3,p{margin:0}.intro h1{font-size:29px;line-height:1.4;margin:5px 0 8px;letter-spacing:.02em}.intro h1 em{font-style:normal;color:var(--blue)}.intro p{color:var(--muted);font-size:12px}.pill{font-size:11px;padding:4px 12px;border:1px solid #c2e5f9;border-radius:20px;color:var(--blue);background:#f1faff;white-space:nowrap}.page-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 28px}.page-tabs a{border:1px solid var(--line);padding:10px;text-align:center;border-radius:5px;font-size:12px;color:var(--muted);background:#fff}.page-tabs a.active{color:var(--blue);border-color:var(--blue);background:#eff8ff;font-weight:800;box-shadow:inset 0 -3px var(--blue)}.section-head{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:3px solid var(--navy);margin-bottom:16px;gap:12px}.section-head h2{font-size:19px;color:var(--navy)}.section-head h2 span{color:var(--orange);margin-right:7px}.section-head p{font-size:11px;color:var(--muted)}.feature{display:grid;grid-template-columns:49% 51%;border:1px solid #e9c885;border-radius:10px;overflow:hidden;box-shadow:0 4px 18px #183b5b0c;margin-bottom:24px;position:relative;background:#fff}.job-image{background:#e8f1f8;position:relative;overflow:hidden;min-height:150px}.job-image img{width:100%;height:100%;object-fit:cover;display:block}.feature .job-image{min-height:330px}.photo-caption{position:absolute;bottom:8px;right:9px;background:#ffffffdf;padding:2px 7px;font-size:9px;color:#54616e;border-radius:3px}.rank{position:absolute;left:12px;top:12px;z-index:1;background:#fff;color:var(--blue);border:1px solid #dce3eb;border-radius:5px;padding:4px 12px;font-size:12px;font-weight:800;box-shadow:0 2px 4px #0000000c}.rank.first{background:#fff4cd;border-color:#e5b441;color:#866107}.rank strong{font-size:24px;line-height:1}.feature-body{padding:25px 28px;display:flex;flex-direction:column;justify-content:center}.company{font-size:10px;color:var(--muted);margin:7px 0}.feature h3{font-size:23px;line-height:1.55;color:var(--blue);margin:5px 0 10px}.tags{display:flex;flex-wrap:wrap;gap:5px}.tags span{font-size:10px;color:#a54a00;border:1px solid #ffd4ae;border-radius:3px;padding:1px 6px}.salary{font-size:12px;font-weight:700;margin:6px 0;color:#a34a00}.salary strong{font-size:25px;letter-spacing:.02em}.facts{margin:9px 0 15px;font-size:11px}.facts div{display:flex;padding:3px 0;gap:10px}.facts dt{width:48px;flex-shrink:0;color:var(--muted)}.facts dd{margin:0}.feature .btn{width:100%;font-size:13px}.recommend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.job-card{border:1px solid #ccd7e0;border-radius:8px;overflow:hidden;background:#fff;transition:box-shadow .18s}.job-card:hover{box-shadow:0 5px 20px #15364d12}.job-card .job-image{height:170px;min-height:0}.job-body{padding:16px}.job-card h3{font-size:16px;line-height:1.6;color:var(--blue);margin:7px 0}.job-card .salary strong{font-size:21px}.job-card .btn{width:100%;font-size:12px;padding:10px 12px}.job-card .facts{margin-bottom:10px}.regular-section{margin-top:44px}.regular-list{display:grid;gap:12px}.regular{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;padding:12px;gap:20px;align-items:center}.regular .job-image{width:170px;height:112px;min-height:0;flex-shrink:0;border-radius:4px}.regular-body{flex:1}.regular h3{font-size:16px;color:var(--blue)}.regular .facts{display:flex;gap:20px;margin:3px 0}.regular .salary{margin:0}.regular .salary strong{font-size:19px}.regular .btn{font-size:12px}.more{text-align:center;padding:24px}.more button{min-width:280px;color:var(--blue)}.all-jobs{background:#eef8ff;border-top:3px solid var(--sky);text-align:center;padding:34px 24px;margin:40px 0}.all-jobs h2{font-size:20px;margin-bottom:7px}.all-jobs p{font-size:12px;color:var(--muted);margin-bottom:19px}.all-jobs .btn{min-width:360px}.footer{border-top:1px solid var(--line);padding:25px 0 30px}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center}.footer p{font-size:10px;color:var(--muted);margin:12px 0}.empty{border:1px dashed #bdcbd8;background:var(--pale);padding:50px 20px;text-align:center;border-radius:8px}.empty h2{font-size:20px;margin-bottom:10px}.empty p{margin-bottom:20px;font-size:13px}.photo-fallback{display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;min-height:112px;color:var(--blue);font-size:12px;background:linear-gradient(135deg,#eef7ff,#dceaf5)}.photo-fallback span{font-size:28px}.admin-body{background:#f4f6f9;min-height:100vh}.admin-header{background:#fff;border-top:5px solid var(--blue);border-bottom:1px solid var(--line)}.admin-header .header-inner{min-height:75px}.admin-header .admin-wrap{width:min(1240px,calc(100% - 48px));margin:28px auto 0;padding-bottom:50px}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.admin-title h1{font-size:25px;margin:3px 0}.admin-title p{font-size:12px;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-size:11px;background:#eaf6ee;border:1px solid #cde5d5;padding:3px 9px;border-radius:4px;white-space:nowrap}.status:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.status.warn{background:#fff1e4;border-color:#ffdec0;color:#9c5300}.status.off{background:#f0f1f3;border-color:#d9dfe5;color:#65707d}.admin-tabs{margin:0 0 22px;gap:10px}.admin-tabs a{padding:14px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.summary-card{background:#fff;border:1px solid var(--line);padding:17px 20px;border-radius:7px}.summary-card p{font-size:11px;color:var(--muted)}.summary-card strong{font-size:28px;line-height:1.5;display:block;color:var(--blue)}.summary-card small{font-size:11px;font-weight:400;margin-left:6px}.panel{background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:20px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 22px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:16px}.panel-head p{font-size:11px;color:var(--muted)}.panel-content{padding:18px 22px}.sync-row{display:flex;gap:20px;align-items:center;justify-content:space-between}.sync-row p{font-size:12px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.button-row button{font-size:11px}.notice{padding:12px 16px;background:#f0f8ff;border:1px solid #cce3f6;color:#315773;font-size:11px;border-radius:5px;margin:12px 0 20px}.notice.warn{background:#fff7eb;color:#925200;border-color:#f4d9ab}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:18px 22px;border-bottom:1px solid var(--line)}.field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}.field.grow{flex:1;min-width:190px}input[type=search],select{background:#fff;border:1px solid #c9d3de;border-radius:5px;padding:9px 12px;color:var(--ink);min-height:42px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue);cursor:pointer}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left;font-size:11px}th{font-weight:500;color:var(--muted);background:#f8fafc;font-size:10px}td,th{padding:14px 16px;border-bottom:1px solid #e8edf2}td.check,th.check{text-align:center;width:72px}td strong{font-size:12px;display:block}td small{display:block;font-size:10px;color:var(--muted)}td select{min-width:110px;font-size:11px;padding:5px 8px;min-height:36px}tr.blocked{background:#fcfcfd;color:#79838d}td .status{font-size:9px}.table-empty{text-align:center;padding:35px}.save-bar{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 15px #25445c09;padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px;z-index:4}.save-bar p{font-size:11px}.save-bar .btn{font-size:12px}.toggle-row{display:flex;align-items:center;gap:9px;font-size:12px}.audit{list-style:none;padding:0;margin:0;font-size:11px}.audit li{padding:10px 0;border-bottom:1px solid var(--line)}.audit time{color:var(--muted);margin-right:15px}.login{max-width:470px;margin:60px auto;padding:30px;background:#fff;border:1px solid var(--line);border-radius:9px}.login h1{font-size:23px;margin-bottom:10px}.login p{font-size:12px;color:var(--muted);margin-bottom:20px}.login .btn{width:100%;margin-top:12px}.login select{width:100%}.login .notice{margin-top:20px;margin-bottom:0}.skip{position:fixed;left:10px;top:-100px;z-index:30;background:#fff;padding:12px}.skip:focus{top:10px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);border-radius:7px;padding:12px 22px;background:#163e60;color:#fff;box-shadow:0 5px 20px #0002;font-size:12px;z-index:20;display:none;max-width:90vw}#toast.show{display:block}dialog{border:0;border-radius:10px;box-shadow:0 20px 70px #0003;width:min(500px,calc(100% - 30px));padding:28px;color:var(--ink)}dialog::backdrop{background:#142a4266}dialog h2{font-size:19px;margin-bottom:14px}dialog p{font-size:13px;margin-bottom:15px}dialog .button-row{justify-content:flex-end;margin-top:22px}dialog .btn{font-size:12px}.storage-alert{background:#fff1e4;padding:10px;text-align:center;font-size:12px;color:#874600}
@media(min-width:1000px){.recommend-grid .job-card:nth-child(4),.recommend-grid .job-card:nth-child(5){display:grid;grid-template-columns:43% 57%;grid-column:span 1}.recommend-grid .job-card:nth-child(4),.recommend-grid .job-card:nth-child(5){display:block}}
@media(max-width:800px){.wrap{width:calc(100% - 28px)}.header-inner{min-height:76px}.header-links{gap:12px;font-size:10px}.site-header .header-links a:first-child{display:none}.intro h1{font-size:25px}.intro .pill{display:none}.feature{grid-template-columns:45% 55%}.feature-body{padding:18px}.feature h3{font-size:20px}.recommend-grid{grid-template-columns:repeat(2,1fr);gap:14px}.regular .job-image{width:135px}.regular{gap:12px}.regular .facts{display:block}.admin-wrap{width:calc(100% - 28px)}.summary-grid{grid-template-columns:repeat(2,1fr)}.sync-row{display:block}.sync-row .button-row{margin-top:14px}.admin-title{align-items:start}.admin-title h1{font-size:22px}}
@media(max-width:540px){:root{font-size:14px}.demo-bar{font-size:10px;padding:5px 12px}.site-header{border-top-width:5px}.brand{gap:6px}.header-inner{min-height:66px;gap:5px}.header-links{gap:8px;font-size:9px}.header-links a{white-space:nowrap}.header-links .btn{padding:7px 9px;font-size:10px;min-height:36px}.topline{margin:16px 0 10px;font-size:9px}.intro{margin-bottom:15px}.intro h1{font-size:23px}.intro p{font-size:10px}.eyebrow{font-size:9px}.page-tabs{gap:5px;margin:16px 0 20px}.page-tabs a{font-size:10px;padding:8px 2px}.section-head h2{font-size:16px}.section-head p{font-size:9px}.section-head{margin-bottom:12px;align-items:start}.feature{display:block;margin-bottom:16px}.feature .job-image{height:215px;min-height:0}.feature-body{padding:17px 18px 20px}.feature h3{font-size:21px;margin:7px 0}.feature .facts{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.feature .facts dt{width:auto}.feature .facts div:first-child{grid-column:span 2}.salary strong{font-size:27px}.recommend-grid{display:flex;flex-direction:column;gap:13px}.job-card{display:grid;grid-template-columns:34% 66%}.job-card .job-image{height:100%;min-height:190px}.job-body{padding:12px}.rank{left:6px;top:6px;font-size:9px;padding:4px 8px}.rank strong{font-size:20px}.rank.first{left:12px;top:12px;padding:5px 13px;font-size:12px}.rank.first strong{font-size:24px}.job-card h3{font-size:15px;margin:5px 0}.job-card .company{font-size:8px;margin:0 0 6px}.job-card .tags span{font-size:8px;padding:1px 4px}.job-card .salary{font-size:10px}.job-card .salary strong{font-size:20px}.job-card .facts{font-size:10px;line-height:1.5;margin:4px 0 9px}.job-card .facts dt{width:38px}.job-card .facts div{gap:3px;padding:1px 0}.photo-caption{font-size:8px;padding:2px 4px;right:5px;bottom:5px}.regular-section{margin-top:30px}.regular{flex-wrap:wrap;gap:10px}.regular .job-image{width:90px;height:90px}.regular-body{min-width:160px}.regular h3{font-size:14px}.regular .company{font-size:9px}.regular>.btn{width:100%}.regular .facts{font-size:10px}.regular .facts div:nth-child(n+2){display:none}.all-jobs{margin:25px 0;padding:25px 15px}.all-jobs h2{font-size:17px}.all-jobs .btn{min-width:0;width:100%;font-size:12px;padding:12px 8px}.footer-inner{display:block}.footer .footer .tiny{font-size:10px;margin-top:14px}.summary-card{padding:14px}.summary-card strong{font-size:24px}.admin-title{display:block}.admin-title>.button-row{margin-top:12px}.admin-header .admin-header .admin-header .admin-header .header-links{font-size:10px}.admin-tabs a{padding:12px 0}.panel-head{padding:15px}.panel-head h2{font-size:14px}.panel-content,.toolbar{padding:15px}.toolbar .field{flex:1;min-width:120px}.toolbar .field.grow{flex-basis:100%}.save-bar{padding:12px 15px}.save-bar .btn{padding:10px 13px;font-size:11px}.save-bar p{font-size:10px}.login{margin:30px 14px}.panel-head .toggle-row{font-size:10px}.panel-head .button-row .btn{font-size:10px;padding:6px 9px}.intro h1{letter-spacing:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

[data-card]{cursor:pointer}

/* 公式ロゴ画像：加工せず、縦横比を保って表示する。 */
.brand-logo{display:block;width:280px;max-width:100%;height:auto;object-fit:contain}.brand{flex-shrink:0}.admin-header .brand-logo{width:250px}
@media(max-width:540px){.brand-logo{width:210px}.admin-header .brand-logo{width:180px}.header-inner{gap:10px}.header-links{flex-shrink:0}}
@media(max-width:360px){.brand-logo{width:185px}.admin-header .brand-logo{width:150px}}
@media(max-width:540px){.admin-header .header-inner{flex-wrap:wrap;padding:12px 0}.admin-header .header-links{flex-shrink:1;flex-wrap:wrap;max-width:100%;margin-left:auto}}
input[type=email],input[type=password]{background:#fff;border:1px solid #c9d3de;border-radius:5px;padding:10px 12px;min-height:44px;color:var(--ink);width:100%}
[hidden]{display:none!important}

.measurement-debug{margin-top:28px;margin-bottom:28px;padding:20px;border:1px solid #b7cce1;border-radius:8px;background:#f3f8fe;font-size:13px;overflow-wrap:anywhere}.measurement-debug h2{font-size:18px}.measurement-debug p{margin:10px 0}.measurement-debug .button-row{flex-wrap:wrap}.measurement-debug pre{max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;padding:14px;background:white;margin-top:12px}.measurement-debug summary{cursor:pointer;font-weight:700}
/* 終わった求人（2026-10-18）：写真を薄くし、印を写真の真ん中に大きく出す */
.ended .job-image img{filter:grayscale(1);opacity:.55}
.ended-badge{position:absolute;inset:0;margin:auto;width:fit-content;max-width:88%;height:fit-content;padding:10px 18px;border-radius:999px;background:rgba(17,24,39,.86);color:#fff;font-weight:800;font-size:clamp(16px,4.6vw,22px);line-height:1.3;text-align:center;z-index:3;pointer-events:none}
.ended h3{color:#6b7280}
.ended .btn.outline{border-color:#9ca3af}
.sort-buttons{display:flex;gap:6px;flex-wrap:wrap}.sort-buttons button{padding:8px 12px;font-size:13px}.sort-buttons button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.pay{color:var(--blue)!important;font-weight:700}#sort-label{margin-left:6px;color:var(--blue);font-weight:700}
td.check .rank-pick{display:block;margin:6px auto 0;min-width:0;width:78px;min-height:32px;font-size:11px;padding:3px 4px}td.check,th.check{width:90px}
/* 2026-10-18 まさしさんの報告：サムネ（3:2・文字入り）が切れる・おすすめの札が重なる → 写真は 3:2 の枠で切らずに全体を見せ、札は写真の外（文字の側）に出す */
.job-image img{object-fit:contain}
.feature .job-image,.job-card .job-image,.regular .job-image{height:auto;min-height:0;aspect-ratio:3/2}
.feature{align-items:center}
.rank{position:static;display:inline-block;margin:0 0 8px;box-shadow:none}
.feature-body .rank,.job-body .rank{align-self:flex-start}
@media(max-width:540px){.job-card{display:block}.job-card .job-image,.feature .job-image{height:auto;min-height:0}.regular .job-image{width:120px;height:auto}}
/* おすすめの帯（2026-10-18）：カードのいちばん上。No.1 はオレンジ〜金色で大きく、No.2〜6 は青 */
.rank-band{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--blue);color:#fff;font-weight:800;font-size:14px;letter-spacing:.04em}
.rank-band .rank-no{display:inline-flex;align-items:baseline;gap:1px}.rank-band strong{font-size:24px;line-height:1}
.rank-band.first{background:linear-gradient(90deg,var(--orange),#f5b400);font-size:18px;padding:11px 18px;text-shadow:0 1px 2px #0000002e}.rank-band.first strong{font-size:34px}
.feature .rank-band{grid-column:1/-1}
