:root{--navy:#071426;--ink:#102038;--red:#e52b33;--pale:#eef2f6;--line:#d8e0e8;--green:#098568}*{box-sizing:border-box}body{margin:0;background:#f4f6f9;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic",sans-serif}.hero{height:74px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1240px)/2));position:sticky;top:0;z-index:5}.brand{display:flex;align-items:baseline;gap:12px}.brand b{font-size:25px}.brand span{font-size:11px;letter-spacing:.13em;color:#aab8ca}.produced{font-size:11px;color:#aab8ca}.produced strong{color:white;margin-left:5px}main{max-width:1240px;margin:auto}.home{max-width:590px;text-align:center;margin:9vh auto;padding:40px 24px;background:white;border-radius:22px;box-shadow:0 18px 50px #14223a18}.eyebrow,.section-title small{color:var(--red);font-weight:800;letter-spacing:.12em;font-size:12px}.home h1{font-size:clamp(38px,8vw,62px);line-height:1.12;margin:12px}.lead{color:#5c6d83}.daily-title{font-weight:800}.scenario-tabs{display:flex;gap:8px;margin:28px 0}.scenario-tabs button{flex:1;padding:13px;border:1px solid var(--line);background:white;border-radius:10px;font-weight:700}.scenario-tabs .active{border-color:var(--red);color:var(--red);background:#fff4f4}.home-stats{padding:16px;background:var(--pale);display:flex;justify-content:space-between;border-radius:12px}.home-stats span{font-size:12px}.primary,.run,.secondary,.choices button{min-height:50px;border:0;border-radius:10px;font-size:16px;font-weight:800;cursor:pointer}.primary,.run{background:var(--red);color:white}.home>.primary{width:100%;margin-top:16px}.base{margin-top:28px}.statusbar{display:flex;justify-content:space-between;padding:22px 4px}.statusbar div{display:flex;flex-direction:column}.risk{background:#fff3dd;border-left:4px solid #f0a225;padding:13px 16px;margin-bottom:18px;display:flex;gap:18px}.layout{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;padding-bottom:40px}.layout>section,.layout>aside{min-width:0}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.section-title h2{margin:3px 0}.link{border:0;background:none;color:#53677e;text-decoration:underline;min-height:44px}.help{background:white;padding:14px;border-radius:10px;margin-bottom:12px}.jobs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.job,.truck{border:2px solid transparent;background:white;border-radius:15px;text-align:left;padding:17px;color:var(--ink);box-shadow:0 5px 18px #18304e0c;cursor:pointer}.job.selected,.truck.selected{border-color:var(--red)}.job.used{opacity:.36}.job-head,.truck>div:first-child{display:flex;justify-content:space-between}.job-head span{color:#f0a225}.job-route{font-size:25px;font-weight:900;margin:14px 0}.job-route i{font-style:normal;color:var(--red);margin:0 8px}.times{display:flex;gap:10px;color:#5e7088;font-size:14px}.cargo{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}.cargo span{background:var(--pale);padding:8px;font-weight:700}.cargo small{display:block;color:#72839a;font-weight:400}.job p,.truck p{font-size:13px;margin:8px 0 0}.fleet{display:grid;gap:9px}.truck{width:100%}.state{font-size:12px;background:#eaf4f1;color:var(--green);padding:4px 8px;border-radius:12px}.mini-route{font-size:13px;line-height:1.65;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.inspector{background:white;border-radius:15px;padding:18px;margin-top:12px;white-space:pre-line}.inspector.invalid{border:2px solid var(--red);background:#fff5f5}.inspector p{color:#5d6c80;line-height:1.6}.inspector .primary,.run{width:100%}.run{margin-top:12px;background:var(--navy)}button:disabled{cursor:not-allowed;opacity:.45}.modal{position:fixed;inset:0;background:#071426c9;z-index:10;overflow:auto;padding:20px}.modal-card{max-width:620px;background:white;margin:20px auto;border-radius:20px;padding:28px;position:relative}.modal-x{position:absolute;right:15px;top:12px;border:0;background:none;font-size:30px}.choices{display:grid;gap:10px}.choices button{background:var(--pale);text-align:left;padding:13px}.share-card{text-align:center;border:1px solid var(--line);padding:26px;border-radius:15px}.score{font-size:72px;line-height:1;font-weight:950;margin-top:20px}.score small{font-size:16px}.rank{font-size:27px;color:var(--red);font-weight:900}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;text-align:left;margin:22px 0}.metrics span{background:var(--pale);padding:10px;font-size:12px}.metrics b{display:block;font-size:17px}.compare{background:var(--navy);color:white;padding:12px;border-radius:9px}.share-card footer{margin-top:22px;line-height:1.7}.route-result details{border-bottom:1px solid var(--line);padding:12px}.timeline{border-left:2px solid var(--red);margin-left:8px;padding-left:14px}.timeline p{font-size:13px}.timeline time{font-weight:800;margin-right:10px}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.secondary{background:white;border:2px solid var(--navy)}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,80px);background:var(--navy);color:white;padding:12px 20px;border-radius:20px;transition:.2s;z-index:20}.toast.show{transform:translate(-50%,0)}
.score-details{margin:18px 0;text-align:left;border:1px solid var(--line);border-radius:10px;padding:0 13px}.score-details summary{cursor:pointer;font-weight:800;padding:13px 0}.score-details div{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 0 13px}.score-details span{background:var(--pale);padding:9px;font-size:13px}.score-details b{display:block;margin-top:3px}
@media(max-width:760px){.hero{height:64px;padding:0 16px}.brand b{font-size:22px}.brand span,.produced{display:none}main{padding:0 12px}.home{margin:22px 0;padding:28px 18px}.home h1{font-size:38px}.layout{display:block}.jobs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.job{min-width:88%;scroll-snap-align:start}.risk{font-size:13px;display:block}.fleet{grid-template-columns:1fr}.modal{padding:8px}.modal-card{margin:8px auto;padding:22px 14px}.score{font-size:60px}.score-details div{grid-template-columns:1fr}.metrics{gap:5px}.result-actions{grid-template-columns:1fr}.statusbar{padding:15px 2px}.job-route{font-size:23px}}
