:root{color-scheme:light;--ink: #1c2733;--ink-2: #46535f;--ink-3: #5f6873;--line: #ddd9cf;--line-2: #cbc6ba;--surface: #fffdf7;--bg: #f6f3ea;--bg-elev: #eaf1ea;--brand: #2f6b4d;--brand-600: #2f6b4d;--brand-700: #245a40;--brand-tint: #e3ece6;--brand-ring: rgba(47, 107, 77, .3);--ok: #2f6b4d;--ok-tint: #e3ece6;--warn: #8a6d3b;--warn-tint: #f1e9d8;--warn-ink: #6b5226;--ng: #b4452f;--ng-tint: #f7e4de;--font-sans: "Zen Kaku Gothic New", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--font-round: "Zen Maru Gothic", "Zen Kaku Gothic New", system-ui, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Roboto Mono", monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--s8: 64px;--r-sm: 12px;--r-md: 12px;--r-lg: 18px;--r-xl: 22px;--r-pill: 100px;--shadow-1: 0 2px 0 rgba(28, 39, 51, .07);--shadow-2: 0 4px 0 rgba(28, 39, 51, .08);--shadow-3: 0 14px 0 rgba(28, 39, 51, .09);--shadow-btn: 0 4px 0 var(--brand-700);--shadow-btn-down: 0 2px 0 var(--brand-700);--ease: cubic-bezier(.22, 1, .36, 1);--dur: .16s;--maxw: 920px}*{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--ink);background:radial-gradient(1200px 600px at 50% -10%,var(--brand-tint),transparent 60%),var(--bg);background-attachment:fixed;line-height:1.65;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"palt" 1}button,input,textarea,select{font:inherit;color:inherit}:where(button){cursor:pointer}:focus-visible{outline:3px solid var(--brand-ring);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app{max-width:var(--maxw);margin:0 auto;padding:clamp(var(--s4),3vw,var(--s7)) var(--s4) var(--s8)}.stack>*+*{margin-top:var(--s4)}.muted{color:var(--ink-2)}.tnum{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.hero{text-align:center;padding:var(--s5) 0 var(--s5)}.brand{margin:0;display:inline-flex;align-items:center;gap:var(--s2);font-family:var(--font-round);font-weight:700;letter-spacing:.02em;color:var(--brand);font-size:1.05rem}.brand-dot{width:14px;height:14px;border-radius:5px;background:var(--brand);box-shadow:0 0 0 4px var(--brand-tint)}.hero h1{font-family:var(--font-round);font-size:clamp(1.6rem,4.6vw,2.55rem);line-height:1.4;font-weight:900;letter-spacing:.004em;margin-top:var(--s4)}.hero h1 .accent{color:var(--brand)}.hero p.lede{margin-top:var(--s4);color:var(--ink-2);font-size:clamp(.95rem,2vw,1.08rem);line-height:1.85}.eyebrow{display:inline-block;font-family:var(--font-round);font-weight:700;font-size:.8rem;color:var(--brand-700);background:var(--brand-tint);border:1px solid color-mix(in oklab,var(--brand) 22%,transparent);border-radius:var(--r-pill);padding:5px var(--s4);margin-top:var(--s4);letter-spacing:.03em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:clamp(var(--s4),3vw,var(--s6))}.card+.card{margin-top:var(--s5)}.segmented{display:inline-grid;grid-auto-flow:column;gap:2px;padding:4px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-md)}.segmented button{border:0;background:transparent;padding:var(--s2) var(--s5);border-radius:9px;font-weight:650;color:var(--ink-2);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.segmented button[aria-selected=true]{background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-1)}.segmented button:hover:not([aria-selected=true]){color:var(--ink)}.field{display:block}.field>label{display:block;font-weight:650;margin-bottom:var(--s2);font-size:.95rem}.field .hint{color:var(--ink-3);font-weight:400;font-size:.85rem}textarea.addr{width:100%;min-height:160px;resize:vertical;padding:var(--s4);border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--bg-elev);line-height:1.8;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}textarea.addr::placeholder{color:var(--ink-3)}textarea.addr:focus{border-color:var(--brand-600);box-shadow:0 0 0 4px var(--brand-ring);background:var(--surface)}.row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}.count-chip{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-2);background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;padding:2px var(--s3);font-size:.82rem}.advanced{border-top:1px dashed var(--line);margin-top:var(--s4);padding-top:var(--s4)}.advanced>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:var(--s2);font-weight:650;color:var(--ink-2);user-select:none}.advanced>summary::-webkit-details-marker{display:none}.advanced>summary .chev{transition:transform var(--dur) var(--ease)}.advanced[open]>summary .chev{transform:rotate(90deg)}.adv-grid{margin-top:var(--s4);display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.adv-item label{display:block;font-weight:600;font-size:.9rem;margin-bottom:var(--s2)}.adv-item input[type=number],.adv-item select,.adv-item input[type=time]{width:100%;padding:var(--s2) var(--s3);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.adv-item input:focus,.adv-item select:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px var(--brand-ring)}.switch{display:inline-flex;align-items:center;gap:var(--s2)}.switch input{accent-color:var(--brand-600);width:18px;height:18px}.stages{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s4)}.stage-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-round);font-size:.8rem;font-weight:700;color:var(--ink-3);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px var(--s3)}.stage-chip.active{color:var(--brand-700);background:var(--brand-tint);border-color:color-mix(in oklab,var(--brand) 30%,transparent)}.stage-chip .n{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--ink-3);color:#fff;font-size:.72rem}.stage-chip.active .n{background:var(--brand)}.bulk-add{display:grid;gap:var(--s2)}textarea.bulk{width:100%;min-height:80px;resize:vertical;padding:var(--s3);border:1.5px dashed var(--line-2);border-radius:var(--r-md);background:var(--bg-elev);line-height:1.7;font-family:var(--font-sans)}textarea.bulk:focus{border-color:var(--brand);border-style:solid;box-shadow:0 0 0 4px var(--brand-ring);outline:none}.job-rows{display:grid;gap:var(--s3)}.job-row{display:grid;grid-template-columns:24px 1fr 110px auto 30px;gap:var(--s3);align-items:center;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);animation:rise var(--dur) var(--ease) both}.job-row .idx{font-family:var(--font-round);font-weight:700;color:var(--brand);text-align:center;font-size:.9rem}.job-row input[type=text],.job-row input[type=number],.job-row input[type=time]{width:100%;padding:9px var(--s3);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);font-family:var(--font-sans);color:var(--ink)}.job-row input::placeholder{color:var(--ink-3)}.job-row input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);background:var(--surface);outline:none}.job-row input.invalid{border-color:var(--warn);background:var(--warn-tint)}.job-row .dur-wrap{display:flex;align-items:center;gap:4px}.job-row .dur-wrap .unit{font-size:.8rem;color:var(--ink-3);white-space:nowrap}.job-row .tw{display:flex;align-items:center;gap:6px}.job-row .tw .dash{color:var(--ink-3)}.job-row .tw input[type=time]{width:92px}.job-row .del{border:0;background:transparent;color:var(--ink-3);font-size:1.15rem;line-height:1;border-radius:var(--r-sm);padding:4px 6px;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.job-row .del:hover{color:var(--ng);background:var(--ng-tint)}.row-err{grid-column:2 / -1;color:var(--warn);font-size:.78rem;font-weight:650;margin-top:2px}.row-toolbar{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s3)}.add-row{font-family:var(--font-round);font-weight:700;color:var(--brand-700);background:var(--brand-tint);border:1px solid color-mix(in oklab,var(--brand) 25%,transparent);border-radius:var(--r-pill);padding:8px var(--s4);transition:all var(--dur) var(--ease)}.add-row:hover:not(:disabled){background:color-mix(in oklab,var(--brand) 18%,var(--surface))}.add-row:disabled{opacity:.45;cursor:not-allowed}.tw-head{font-size:.72rem;color:var(--ink-3)}@media (max-width: 580px){.job-row{grid-template-columns:1fr;gap:var(--s2)}.job-row .idx{text-align:left}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:2px solid transparent;border-radius:var(--r-pill);padding:15px 30px;font-family:var(--font-round);font-weight:700;font-size:16px;letter-spacing:.02em;line-height:1;transition:all .16s ease;white-space:nowrap}.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow-btn);width:100%}.btn-primary:hover:not(:disabled){background:var(--brand-700);transform:translateY(2px);box-shadow:var(--shadow-btn-down)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.btn-ghost{background:var(--surface);border-color:var(--line-2);color:var(--ink)}.btn-ghost:hover{border-color:var(--brand);color:var(--brand-700)}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fair{display:grid;gap:var(--s3);border-radius:var(--r-md);padding:var(--s4) var(--s5);border:1px solid}.fair.ok{background:var(--ok-tint);border-color:color-mix(in oklab,var(--ok) 30%,transparent)}.fair.warn{background:var(--warn-tint);border-color:color-mix(in oklab,var(--warn) 30%,transparent)}.fair.ng{background:var(--ng-tint);border-color:color-mix(in oklab,var(--ng) 30%,transparent)}.fair .head{display:flex;align-items:center;gap:var(--s3);font-weight:750}.fair .gauge{display:flex;gap:var(--s4);flex-wrap:wrap;font-size:.85rem;color:var(--ink-2)}.fair .gauge b{color:var(--ink)}.fair .interp{line-height:1.7}.vehicles{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.veh{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-1);animation:rise var(--dur) var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.veh .veh-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s3) var(--s4);background:var(--brand-tint);border-bottom:1px solid var(--line)}.veh .veh-head .name{font-family:var(--font-round);font-weight:700;color:var(--brand-700)}.veh .veh-head .busy{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-2)}.veh ol{list-style:none;padding:var(--s3);display:grid;gap:2px}.veh li{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s2);border-radius:var(--r-sm)}.veh li:hover{background:var(--bg-elev)}.pin{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:.85rem;color:#fff;background:var(--brand);font-family:var(--font-round)}.veh li .txt{min-width:0}.veh li .txt .lbl{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.veh li .txt a{font-size:.8rem;color:var(--brand-600);text-decoration:none}.veh li .txt a:hover{text-decoration:underline}.overview{margin-top:var(--s5)}.overview img{width:100%;height:auto;border-radius:var(--r-md);border:1px solid var(--line);display:block;background:var(--bg-elev)}.checklist{display:grid;gap:var(--s2)}.check-row{display:grid;grid-template-columns:28px 1fr auto;gap:var(--s3);align-items:center;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.check-row .ok-dot{width:22px;height:22px;border-radius:50%;background:var(--ok-tint);color:var(--ok);display:grid;place-items:center;font-size:.8rem}.check-row .addr-text{min-width:0}.check-row .addr-text .fmt{font-weight:600}.check-row .addr-text .raw{font-size:.8rem;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.granular-warn{color:var(--warn);font-size:.78rem;font-weight:650}.notice{border-radius:var(--r-md);padding:var(--s4) var(--s5);border:1px solid var(--line);background:var(--bg-elev);display:grid;gap:var(--s3)}.notice.err{background:var(--ng-tint);border-color:color-mix(in oklab,var(--ng) 28%,transparent)}.notice .title{font-weight:750;display:flex;align-items:center;gap:var(--s2)}.notice .cta{display:flex;gap:var(--s3);flex-wrap:wrap}.cid{font-family:var(--font-mono);font-size:.74rem;color:var(--ink-3)}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg,var(--line-2),var(--bg-elev),var(--line-2));background-size:200% 100%;animation:sheen 1.3s linear infinite}@keyframes sheen{to{background-position:-200% 0}}.disclaimer{margin-top:var(--s6);font-size:.8rem;color:var(--ink-3);line-height:1.7;border-top:1px solid var(--line);padding-top:var(--s4)}.disclaimer strong{color:var(--ink-2)}.footer{margin-top:var(--s5);text-align:center;color:var(--ink-3);font-size:.8rem}.center{text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;padding:var(--s5) 0 var(--s4)}.segmented button{display:grid;gap:1px;padding:var(--s2) var(--s5);border-radius:10px;text-align:center}.seg-name{font-family:var(--font-round);font-weight:700;font-size:.95rem}.seg-io{font-size:.72rem;color:var(--ink-3);font-weight:500}.segmented button[aria-selected=true] .seg-io{color:var(--brand-700)}.tool-desc{color:var(--ink-2);font-size:.92rem;line-height:1.7;margin:0 0 var(--s4);padding:var(--s3) var(--s4);background:var(--brand-tint);border-radius:var(--r-md);border:1px solid color-mix(in oklab,var(--brand) 14%,transparent)}@media (max-width: 560px){.toolbar{flex-direction:column;align-items:stretch}.segmented,.segmented button{width:100%}}.job-row .loc{display:grid;gap:4px;min-width:0}.job-row .loc-label{font-size:.8rem;color:var(--ink-2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-row .latlng{display:grid;grid-template-columns:1fr 1fr;gap:6px}.job-row.addr-mode{grid-template-columns:24px 1fr 30px}.bridge-note{background:var(--ok-tint);border:1px solid color-mix(in oklab,var(--ok) 28%,transparent);color:var(--brand-700);border-radius:var(--r-md);padding:var(--s3) var(--s4);font-size:.88rem;font-weight:650}.check-row .coord{font-size:.78rem;color:var(--ink-3);margin-top:2px;font-family:var(--font-mono)}.check-row .ok-dot[data-low=true]{background:var(--warn-tint);color:var(--warn)}.result-actions{display:flex;gap:var(--s3);flex-wrap:wrap;justify-content:flex-end}.sample-cta{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;background:var(--brand-tint);border:1px dashed color-mix(in oklab,var(--brand) 35%,transparent);border-radius:var(--r-md);padding:var(--s3) var(--s4);margin-bottom:var(--s4);font-size:.88rem;color:var(--ink-2)}.sample-btn{font-family:var(--font-round);font-weight:700;color:#fff;background:var(--brand);border:0;border-radius:var(--r-pill);padding:8px var(--s4);box-shadow:var(--shadow-btn);transition:all .16s ease;white-space:nowrap}.sample-btn:hover{background:var(--brand-700);transform:translateY(2px);box-shadow:var(--shadow-btn-down)}.sample-cta .hint{width:100%;color:var(--ink-3);font-size:.78rem;margin-top:2px}.kohei-wrap{display:inline-block;line-height:0}.kohei-svg{overflow:visible}@media (prefers-reduced-motion: no-preference){.kohei-bob{animation:kbob 3.4s ease-in-out infinite}.kohei-bob .kohei-shadow{animation:kshadow 3.4s ease-in-out infinite}.k-eye{transform-box:fill-box;transform-origin:center;animation:kblink 5.4s infinite}.kohei-wave{transform-origin:96px 58px;animation:kwave 1.4s ease-in-out infinite}}@keyframes kbob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes kshadow{0%,to{opacity:.14}50%{opacity:.07}}@keyframes kblink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes kwave{0%,to{transform:rotate(0)}50%{transform:rotate(18deg)}}.kohei-guide{display:flex;align-items:center;gap:var(--s3)}.kohei-guide .kohei-wrap{flex:none}.kohei-bubble{position:relative;flex:1;min-width:0;background:#fff;border:2px solid var(--ink);border-radius:16px;padding:var(--s3) var(--s4);font-size:.92rem;line-height:1.65;color:var(--ink);box-shadow:var(--shadow-1);animation:bubblePop var(--dur) var(--ease) both}.kohei-bubble.tone-good{border-color:var(--brand);background:var(--ok-tint)}.kohei-bubble.tone-warn{border-color:var(--warn);background:var(--warn-tint)}.kohei-bubble strong{color:var(--brand-700);font-family:var(--font-round)}.kohei-bubble.tone-warn strong{color:var(--warn)}.kohei-bubble--left:after,.kohei-bubble--left:before{content:"";position:absolute;width:0;height:0}.kohei-bubble--left:after{left:-12px;top:22px;border-width:9px 13px 9px 0;border-style:solid;border-color:transparent #fff transparent transparent}.kohei-bubble--left:before{left:-17px;top:19px;border-width:12px 17px 12px 0;border-style:solid;border-color:transparent var(--ink) transparent transparent}.kohei-bubble.tone-good.kohei-bubble--left:after{border-right-color:var(--ok-tint)}.kohei-bubble.tone-good.kohei-bubble--left:before{border-right-color:var(--brand)}.kohei-bubble.tone-warn.kohei-bubble--left:after{border-right-color:var(--warn-tint)}.kohei-bubble.tone-warn.kohei-bubble--left:before{border-right-color:var(--warn)}@keyframes bubblePop{0%{opacity:0;transform:translate(-6px) scale(.98)}to{opacity:1;transform:none}}@media (max-width: 480px){.kohei-guide .kohei-wrap{display:none}.kohei-bubble--left:after,.kohei-bubble--left:before{display:none}}.start-time{display:grid;grid-template-columns:auto auto;gap:var(--s2) var(--s4);align-items:center;margin-top:var(--s4);padding:var(--s3) var(--s4);background:var(--brand-tint);border:1px solid color-mix(in oklab,var(--brand) 16%,transparent);border-radius:var(--r-md)}.start-time>label{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-round);font-weight:700;color:var(--brand-700)}.start-time>label .hint{color:var(--ink-3);font-weight:400;font-size:.8rem}.start-time .st-icon{font-size:1.1rem}.start-time input[type=time]{padding:9px var(--s3);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-family:var(--font-mono)}.start-time input[type=time]:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.start-time .st-help{grid-column:1 / -1;font-size:.82rem;color:var(--ink-2);line-height:1.65;margin:0}.start-time .st-help strong{color:var(--brand-700);font-family:var(--font-round)}@media (max-width: 480px){.start-time{grid-template-columns:1fr}}.provenance-note{font-size:.84rem;line-height:1.6;padding:var(--s2) var(--s4);border-radius:var(--r-sm);border:1px solid}.provenance-note.demo{background:var(--warn-tint);border-color:color-mix(in oklab,var(--warn) 30%,transparent);color:var(--ink-2)}.provenance-note.demo strong{color:var(--warn);font-family:var(--font-round)}.provenance-note.saved{background:var(--brand-tint);border-color:color-mix(in oklab,var(--brand) 22%,transparent);color:var(--ink-2)}.provenance-note.saved strong{color:var(--brand-700);font-family:var(--font-round)}.caveat-inline{font-size:.78rem;line-height:1.6;color:var(--ink-2)}.caveat-inline strong{color:var(--ink-2)}.memo-input{grid-column:2 / -1;width:100%;padding:7px var(--s3);border:1.5px dashed var(--line-2);border-radius:var(--r-sm);background:var(--bg-elev);font-size:.84rem}.memo-input:focus{border-style:solid;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.tl-memo{grid-column:1 / -1;font-size:.76rem;font-weight:600;color:var(--warn-ink);background:var(--warn-tint);border-radius:6px;padding:1px 7px;justify-self:start}.timeline .tl-stop .tl-memo{margin-top:1px}.tl-window{grid-column:1 / -1;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;justify-self:start;margin-top:2px;font-size:.76rem;color:var(--ink-2)}.tw-dev{font-style:normal;font-weight:700;font-size:.74rem;border-radius:6px;padding:0 6px;line-height:1.5}.tw-late{color:#fff;background:var(--ng)}.tw-early{color:var(--brand-700);background:var(--brand-tint)}.tw-ontime{color:var(--ok);background:var(--ok-tint)}.view-switch{display:inline-flex;gap:2px;padding:4px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-md)}.view-switch button{border:0;background:transparent;padding:var(--s2) var(--s4);border-radius:9px;font-family:var(--font-round);font-weight:700;font-size:.86rem;color:var(--ink-2);transition:all var(--dur) var(--ease)}.view-switch button.active{background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-1)}.view-switch button:hover:not(.active){color:var(--ink)}.gantt{display:grid;gap:6px;padding:var(--s2) 0}.gantt-axis{position:relative;height:18px}.gantt-row{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:var(--s3)}.gantt-name{font-family:var(--font-round);font-weight:700;font-size:.82rem;color:var(--brand-700);text-align:right}.gantt-track{position:relative;height:30px;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;overflow:visible}.gantt-axis .gantt-track{background:transparent;border:0;height:18px}.gantt-tick{position:absolute;top:0;transform:translate(-50%);font-family:var(--font-mono);font-size:.68rem;color:var(--ink-3)}.gantt-tick:after{content:"";position:absolute;left:50%;top:14px;width:1px;height:1000px;background:color-mix(in oklab,var(--line) 60%,transparent);z-index:0}.gantt-span{position:absolute;top:50%;transform:translateY(-50%);height:4px;background:color-mix(in oklab,var(--brand) 22%,transparent);border-radius:3px}.gantt-block{position:absolute;top:4px;height:22px;background:var(--brand);border-radius:5px;display:grid;place-items:center;box-shadow:var(--shadow-1);z-index:1;min-width:14px}.gantt-travel{position:absolute;top:50%;transform:translateY(-50%);height:0;border-top:2px dotted var(--ink-3);z-index:1}.gantt-wait{position:absolute;top:7px;height:16px;border-radius:4px;z-index:1;background-color:var(--warn-tint);background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,color-mix(in oklab,var(--warn) 32%,transparent) 3px,color-mix(in oklab,var(--warn) 32%,transparent) 6px);border:1px solid color-mix(in oklab,var(--warn) 30%,transparent)}.gantt-legend{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.gantt-legend .lg-work,.gantt-legend .lg-travel,.gantt-legend .lg-wait{display:inline-block;width:18px;vertical-align:middle}.gantt-legend .lg-work{height:12px;background:var(--brand);border-radius:3px}.gantt-legend .lg-travel{height:0;border-top:2px dotted var(--ink-3)}.gantt-legend .lg-wait{height:12px;border-radius:3px;background-color:var(--warn-tint);background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,color-mix(in oklab,var(--warn) 32%,transparent) 3px,color-mix(in oklab,var(--warn) 32%,transparent) 6px);border:1px solid color-mix(in oklab,var(--warn) 30%,transparent)}.gb-marker{color:#fff;font-family:var(--font-round);font-weight:700;font-size:.7rem}.gantt-end{position:absolute;top:50%;transform:translateY(-50%);margin-left:4px;font-size:.7rem;color:var(--ink-2);white-space:nowrap}.gantt-loadbar{height:100%;background:var(--brand);border-radius:7px;display:flex;align-items:center;padding:0 var(--s2);min-width:60px}.gantt-loadbar span{color:#fff;font-size:.74rem;font-weight:700;white-space:nowrap}@media (max-width: 480px){.gantt-name{font-size:.74rem}.gantt-row{grid-template-columns:40px 1fr}}.link-btn{border:0;background:transparent;color:var(--brand-700);font-family:var(--font-round);font-weight:700;text-decoration:underline;padding:2px 4px;font-size:.9rem}.link-btn:hover:not(:disabled){color:var(--brand)}.link-btn:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.link-btn.link-muted{color:var(--ink-3);font-weight:650}.link-btn.link-muted:hover:not(:disabled){color:var(--ink-2)}.form-actions-row{margin-top:var(--s3);display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}.result-topbar{display:flex;align-items:center;justify-content:flex-end;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}.cache-note{font-size:.8rem;color:var(--brand-700);background:var(--brand-tint);border-radius:var(--r-pill);padding:3px var(--s3);margin-right:auto}.feas-warn{border:1px solid color-mix(in oklab,var(--warn) 30%,transparent);background:var(--warn-tint);border-radius:var(--r-md);padding:var(--s3) var(--s4)}.feas-warn .fw-head{font-family:var(--font-round);font-weight:700;color:var(--warn);margin-bottom:var(--s2)}.feas-warn ul{margin:0;padding-left:1.2em;display:grid;gap:4px}.feas-warn li{font-size:.86rem;line-height:1.6;color:var(--ink)}.feas-warn .fw-foot{font-size:.78rem;color:var(--ink-2);margin-top:var(--s2)}.schedule-note{font-size:.86rem;line-height:1.6;padding:var(--s2) var(--s4);border-radius:var(--r-sm);background:var(--bg-elev);border:1px solid var(--line)}.schedule-note strong{color:var(--brand-700);font-family:var(--font-round)}.schedule-note .muted,.schedule-note .muted strong{color:var(--ink-2)}.timeline{list-style:none;margin:0;padding:var(--s2) var(--s3);--clk: 0px}.timeline.has-clock{--clk: 48px}.tl-clock{font-family:var(--font-mono);font-weight:700;font-size:.8rem;color:var(--brand-700);text-align:right;white-space:nowrap}.tl-stop{display:grid;grid-template-columns:var(--clk) 28px 1fr;gap:2px var(--s3);align-items:center;padding:var(--s2);border-radius:var(--r-sm);transition:background var(--dur) var(--ease)}.timeline:not(.has-clock) .tl-stop{grid-template-columns:28px 1fr}.tl-stop:hover{background:var(--bg-elev)}.tl-stop .pin{grid-row:span 1}.tl-body{min-width:0;display:grid;gap:1px}.tl-body .lbl{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-body .tl-meta{font-size:.78rem;color:var(--ink-2)}.tl-body a{font-size:.78rem;color:var(--brand-600);text-decoration:none;justify-self:start}.tl-body a:hover{text-decoration:underline}.tl-move{display:flex;align-items:center;gap:var(--s2);padding:2px 0 2px calc(var(--clk) + 28px + var(--s3));color:var(--ink-3);font-size:.74rem}.timeline:not(.has-clock) .tl-move{padding-left:calc(28px + var(--s3))}.tl-move .tl-rail{width:2px;height:16px;background:var(--line-2);border-radius:2px;flex:none}.tl-move .tl-wait{color:var(--warn)}.tl-event{display:grid;grid-template-columns:var(--clk) 28px 1fr;gap:var(--s3);align-items:center;padding:var(--s1) var(--s2)}.timeline:not(.has-clock) .tl-event{grid-template-columns:28px 1fr}.tl-event .tl-dot{justify-self:center;color:var(--brand);font-size:.7rem;line-height:1}.tl-event .tl-evt-label{font-family:var(--font-round);font-weight:700;font-size:.82rem;color:var(--brand-700)}.tl-finish .tl-dot,.tl-finish .tl-evt-label{color:var(--ink-2)}.veh-head .tl-span{font-family:var(--font-mono);font-size:.78rem;margin-right:var(--s2);color:var(--brand-700)}@media (max-width: 480px){.timeline.has-clock{--clk: 42px}.tl-clock{font-size:.74rem}}.tut-wrap{display:block}.tut-lessons{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.tut-lesson-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s4);text-align:left;padding:var(--s4) var(--s5);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);animation:rise var(--dur) var(--ease) both}.tut-lesson-card:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-3)}.tut-lc-icon{font-size:1.9rem;width:52px;height:52px;display:grid;place-items:center;background:var(--brand-tint);border-radius:14px}.tut-lc-body{display:grid;gap:2px;min-width:0}.tut-lc-title{font-family:var(--font-round);font-weight:800;font-size:1.02rem;color:var(--ink)}.tut-lc-goal{font-size:.82rem;color:var(--ink-2)}.tut-lc-go{color:var(--brand);font-size:.9rem}.tut-player{padding:clamp(var(--s4),3vw,var(--s5))}.tut-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap}.tut-back{border:0;background:transparent;color:var(--brand-700);font-weight:650;padding:4px 8px;border-radius:var(--r-sm)}.tut-back:hover{background:var(--brand-tint)}.tut-lesson-name{font-family:var(--font-round);font-weight:800}.tut-lesson-tabs{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s3)}.tut-ltab{font-family:var(--font-round);font-weight:700;font-size:.8rem;color:var(--ink-2);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-pill);padding:5px var(--s3);transition:all var(--dur) var(--ease)}.tut-ltab:hover{border-color:var(--brand);color:var(--brand-700)}.tut-ltab.active{background:var(--brand-tint);border-color:color-mix(in oklab,var(--brand) 35%,transparent);color:var(--brand-700)}.tut-dots{list-style:none;display:flex;gap:var(--s2);padding:0;margin-bottom:var(--s3);flex-wrap:wrap}.tut-dot{width:30px;height:24px;padding:8.5px 0;box-sizing:border-box;background-clip:content-box;border-radius:4px;border:0;background-color:var(--line-2);transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.tut-dot.done{background-color:color-mix(in oklab,var(--brand) 45%,var(--line-2))}.tut-dot.active{background-color:var(--brand);transform:scaleY(1.5)}.tut-dot:hover{background-color:var(--brand-700)}.tut-steplabel{font-family:var(--font-round);font-weight:800;color:var(--brand-700);font-size:1.05rem;margin-bottom:var(--s3)}.tut-stage{min-height:200px;animation:tutpop .32s var(--ease) both}@keyframes tutpop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tut-controls{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s4)}.tut-ctl{font-family:var(--font-round);font-weight:700;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:var(--r-pill);padding:10px 20px;transition:all var(--dur) var(--ease)}.tut-ctl:hover:not(:disabled){border-color:var(--brand);color:var(--brand-700)}.tut-ctl:disabled{opacity:.4;cursor:not-allowed}.tut-ctl--primary{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:var(--shadow-btn);min-width:150px}.tut-ctl--primary:hover:not(:disabled){background:var(--brand-700);color:#fff;transform:translateY(2px);box-shadow:var(--shadow-btn-down)}.tut-autobar{height:4px;border-radius:3px;background:var(--brand-tint);margin-top:var(--s3);overflow:hidden;position:relative}.tut-autobar:after{content:"";position:absolute;inset:0;background:var(--brand);transform-origin:left;animation:tutfill 6s linear both}@keyframes tutfill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tut-paste{border:1.5px dashed var(--line-2);border-radius:var(--r-md);background:var(--bg-elev);padding:var(--s4);min-height:150px;position:relative}.tut-paste-head{font-size:.8rem;color:var(--ink-3);margin-bottom:var(--s3)}.tut-line{font-family:var(--font-sans);padding:6px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:6px;animation:rise var(--dur) var(--ease) both}.tut-line--flag{border-color:var(--warn);background:var(--warn-tint);color:var(--warn-ink)}.tut-line--flag:after{content:" ？あいまい";font-size:.74rem;font-weight:700}.tut-caret{display:inline-block;width:2px;height:18px;background:var(--brand);vertical-align:middle;animation:tutblink 1s step-end infinite}@keyframes tutblink{50%{opacity:0}}.tut-press{display:grid;place-items:center;min-height:150px;position:relative}.tut-btn-demo{position:relative}@media (prefers-reduced-motion: no-preference){.tut-btn-demo{animation:tutbtnpress 1.6s var(--ease) infinite}}@keyframes tutbtnpress{0%,70%,to{transform:translateY(0);box-shadow:var(--shadow-btn)}80%{transform:translateY(3px);box-shadow:var(--shadow-btn-down)}}.tut-tap{position:absolute;width:26px;height:26px;right:calc(50% - 70px);bottom:30%}.tut-tap:before{content:"";position:absolute;inset:0;border:2.5px solid var(--brand);border-radius:50%;opacity:0}@media (prefers-reduced-motion: no-preference){.tut-tap:before{animation:tutripple 1.6s ease-out infinite}}@keyframes tutripple{0%,70%{transform:scale(.4);opacity:0}80%{opacity:.8}to{transform:scale(2.2);opacity:0}}.tut-form{display:grid;gap:var(--s3);min-height:150px;align-content:center;max-width:380px;margin:0 auto}.tut-field{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s4);border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:all var(--dur) var(--ease)}.tut-field-label{font-weight:650;color:var(--ink-2)}.tut-field-val{font-family:var(--font-round);font-weight:800;color:var(--brand-700);font-size:1.1rem}.tut-hl{border-color:var(--brand);background:var(--brand-tint);box-shadow:0 0 0 4px var(--brand-ring)}@media (prefers-reduced-motion: no-preference){.tut-hl{animation:tutglow 1.6s ease-in-out infinite}}@keyframes tutglow{0%,to{box-shadow:0 0 0 3px var(--brand-ring)}50%{box-shadow:0 0 0 7px var(--brand-ring)}}.tut-fix-method{border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:var(--s3) var(--s4)}.tut-fix-title{font-family:var(--font-round);font-weight:700;font-size:.86rem;color:var(--brand-700);margin-bottom:var(--s2)}.tut-fix-row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.tut-fix-input{background:var(--bg-elev);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:6px var(--s3);font-size:.82rem;color:var(--ink-2)}.tut-fix-btn{background:var(--brand);color:#fff;border-radius:var(--r-pill);padding:6px var(--s4);font-family:var(--font-round);font-weight:700;font-size:.8rem}.tut-fix-hint{font-size:.74rem;color:var(--ink-3);margin-top:6px}@media (max-width: 480px){.tut-controls{flex-wrap:wrap}.tut-ctl--primary{order:-1;width:100%}}.rough-toggle{display:inline-flex;align-items:center;gap:var(--s2);font-size:.86rem;color:var(--ink-2);cursor:pointer}.rough-toggle input{accent-color:var(--brand-600);width:17px;height:17px}.rough-toggle strong{color:var(--brand-700)}.check-row-wrap{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);overflow:hidden}.check-row-wrap .check-row{border:0;border-radius:0}.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.fixed-badge{display:inline-block;margin-left:var(--s2);font-size:.72rem;font-weight:700;font-family:var(--font-round);color:var(--brand-700);background:var(--brand-tint);border:1px solid color-mix(in oklab,var(--brand) 25%,transparent);border-radius:var(--r-pill);padding:1px 8px}.edit-panel{border-top:1px dashed var(--line);background:var(--bg-elev);padding:var(--s3) var(--s4);display:grid;gap:var(--s3);animation:rise var(--dur) var(--ease) both}.edit-field{display:grid;gap:4px;font-size:.8rem;color:var(--ink-2);font-weight:600}.edit-field input{padding:8px var(--s3);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.edit-method{display:grid;gap:6px}.em-title{font-size:.78rem;font-weight:700;color:var(--brand-700)}.em-row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.em-row input{padding:8px var(--s3);border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);flex:1;min-width:120px}.em-row input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.em-row .hint{color:var(--brand-600);text-decoration:none;font-size:.8rem;white-space:nowrap}.em-row .hint:hover{text-decoration:underline}.geo-consent{border:1px solid color-mix(in oklab,var(--warn) 24%,transparent);background:var(--warn-tint);border-radius:var(--r-md);padding:var(--s3) var(--s4);display:grid;gap:var(--s2)}.geo-note{font-size:.78rem;line-height:1.6;color:var(--ink-2);margin:0}.sample-switch{display:inline-flex;gap:2px;padding:4px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:var(--s4)}.sample-switch button{border:0;background:transparent;padding:var(--s2) var(--s5);border-radius:9px;font-family:var(--font-round);font-weight:700;font-size:.9rem;color:var(--ink-2);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.sample-switch button.active{background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-1)}.sample-switch button:hover:not(.active){color:var(--ink)}.data-source{font-size:.74rem;color:var(--ink-3);text-align:center;margin-top:var(--s2)}.sample-note{background:var(--brand-tint);border:1px solid color-mix(in oklab,var(--brand) 18%,transparent);border-radius:var(--r-md);padding:var(--s3) var(--s4);font-size:.9rem;line-height:1.7;color:var(--ink-2);margin-bottom:var(--s4)}.sample-note strong{color:var(--brand-700);font-family:var(--font-round)}.gallery-tabs{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s5)}.gallery-tabs button{display:grid;gap:1px;padding:var(--s2) var(--s4);border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink-2);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease);text-align:center}.gallery-tabs button:hover{border-color:var(--brand)}.gallery-tabs button.active{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-700);box-shadow:var(--shadow-1)}.gt-label{font-family:var(--font-round);font-weight:700;font-size:.9rem}.gt-sub{font-size:.7rem;color:var(--ink-3)}.gallery-tabs button.active .gt-sub{color:var(--brand-700)}.modal-overlay{position:fixed;inset:0;z-index:100;background:#141c268c;display:grid;place-items:center;padding:var(--s4);animation:fade var(--dur) var(--ease) both}.modal-card{width:min(640px,100%);max-height:min(86vh,760px);display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--line)}.modal-title{margin:0;font-family:var(--font-round);font-weight:800;font-size:1.05rem;color:var(--ink)}.modal-x{border:0;background:transparent;color:var(--ink-2);font-size:1.1rem;line-height:1;border-radius:var(--r-sm);padding:6px 9px;cursor:pointer}.modal-x:hover{background:var(--bg-elev);color:var(--ink)}.modal-body{padding:var(--s4) var(--s5);overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:var(--s3);padding:var(--s4) var(--s5);border-top:1px solid var(--line)}.legal-body{font-size:.9rem;line-height:1.8;color:var(--ink)}.legal-body h3{font-family:var(--font-round);font-size:.95rem;font-weight:700;color:var(--brand-700);margin:var(--s4) 0 var(--s2)}.legal-body ul{margin:0 0 var(--s2);padding-left:1.25em}.legal-body li{margin-bottom:4px}.legal-body p{margin:0 0 var(--s2)}@media (prefers-reduced-motion: reduce){.modal-overlay{animation:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}
