:root{font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#18352c;background:#f5f8f6;font-size:16px}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}a{color:#186948}button,.button{font:inherit;font-weight:700;border:1px solid #bbcec3;background:white;color:#174c36;border-radius:12px;padding:12px 18px;min-height:46px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:disabled{opacity:.5;cursor:default}.primary{background:#186b46;color:white;border-color:#186b46}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bb7500;outline-offset:4px}header{max-width:1080px;margin:auto;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}header>a:last-child{font-size:.9rem}.brand{font-size:32px;font-weight:900;text-decoration:none;letter-spacing:-1.5px}.brand span{font-size:14px;letter-spacing:0;margin-left:12px;font-weight:400}main{max-width:1080px;margin:auto;padding:12px 24px 60px}.heading{display:flex;justify-content:space-between;align-items:center;margin:4px 0 20px}.heading img{object-fit:cover;border-radius:28px}.eyebrow{font-size:14px;font-weight:700;letter-spacing:.1em;color:#397454}h1{font-size:32px;letter-spacing:-1px;margin:8px 0}h2{font-size:20px;margin:0}p{line-height:1.65;margin:12px 0}.layout{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.panel{background:white;border:1px solid #dce6df;border-radius:22px;padding:24px;margin-bottom:20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.badge{font-size:14px;padding:6px 10px;background:#e9f3ec;border-radius:20px}.metrics{display:grid;grid-template-columns:1fr 1fr;margin:30px 0;gap:16px}.metrics strong{display:block;font-size:clamp(32px,5vw,52px);font-variant-numeric:tabular-nums;letter-spacing:-1px}.metrics span{font-size:14px;color:#597164}.route{background:#f3f8f4;border-radius:16px;min-height:220px;position:relative;padding:10px}.route svg{width:100%;height:190px}.route>span{font-size:12px;color:#577463;display:block;text-align:right}.route>p{position:absolute;top:65px;left:20px;right:20px;text-align:center;color:#577463;font-size:14px}svg path{fill:none;stroke:#187449;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}svg circle{fill:#edac32;stroke:#18352c;stroke-width:2}.controls{display:flex;flex-wrap:wrap;gap:10px}.hint{font-size:14px;color:#5a6d61}.preview fieldset{border:0;padding:0;margin:24px 0;display:flex;gap:18px}.preview legend{font-size:14px;margin-bottom:10px}.preview label{display:flex;align-items:center;gap:4px;min-height:40px}.preview>p{font-size:14px;color:#5a6d61}.watch{width:228px;min-height:266px;margin:28px auto;background:#12261e;color:white;border:8px solid #344a3e;border-radius:48px;box-shadow:0 12px 25px #153a1c18;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:18px 12px;text-align:center}.watch.round{border-radius:50%;width:250px;min-height:250px;padding:26px 12px}.watch-brand{color:#ace0bb;font-weight:700;font-size:14px}.watch>span{font-size:14px}.watch>strong{font-variant-numeric:tabular-nums;font-size:36px}.watch button{min-height:44px;padding:8px 20px;background:#bce5a8;color:#193821;border:0;border-radius:30px;font-size:14px;margin-top:4px}.guide ul{padding-left:22px;color:#506658;line-height:1.8}.history-row{border-top:1px solid #e3eae5;padding:18px 0;display:flex;justify-content:space-between;align-items:center;gap:14px}.history-row p{margin:0}.history-row>div:last-child{display:flex;gap:8px}.history-row button{padding:10px 12px}dialog{width:min(540px,calc(100% - 32px));border:1px solid #cbd8ce;border-radius:20px;padding:24px;color:inherit}dialog::backdrop{background:#0a241a88}dialog svg{width:100%;background:#f3f8f4;border-radius:12px}#notice:empty,#saving:empty{display:none}#notice,#saving{color:#315c42}#gps{min-height:26px;font-size:14px}@media(max-width:760px){.layout{grid-template-columns:1fr}.heading img{width:80px;height:80px}.brand span{display:none}.panel{padding:20px}h1{font-size:27px}main{padding:10px 16px 40px}header{padding:18px 16px}.history-row{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}} 
