:root{--bg:#f6f8fb;--card:#ffffff;--ink:#1b2433;--muted:#707b8c;--line:#e7ecf3;--brand:#12b886;--brand-d:#0ca678;--brand-soft:#e6f7f1;--blue:#3b6cf6;--busy:#6b7686;--busy-soft:#eef1f6;--tent:#f0a43a;--tent-soft:#fdf1de;--relay:#7b5cf6;--relay-soft:#efeaff;--radius:14px;--shadow:0 6px 22px rgba(20,30,48,0.06)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}.wrap{max-width:1060px;margin:0 auto;padding:0 20px}.nav{border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:rgba(246,248,251,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.navin{justify-content:space-between;padding:14px 0}.logo,.navin{display:flex;align-items:center}.logo{gap:10px;font-weight:800;font-size:18px}.logo .mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--relay));display:grid;place-items:center;font-size:16px}.navright{display:flex;gap:16px}.navright,.sync{align-items:center}.sync{display:inline-flex;gap:7px;font-size:13px;color:var(--brand-d);font-weight:700;background:var(--brand-soft);padding:5px 12px;border-radius:999px}.dot-live{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 0 rgba(18,184,134,.6);animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(18,184,134,.5)}70%{box-shadow:0 0 0 7px rgba(18,184,134,0)}to{box-shadow:0 0 0 0 rgba(18,184,134,0)}}.url{color:var(--muted);font-size:13px}.hero{padding:46px 0 18px;text-align:center}.badge{display:inline-block;background:var(--brand-soft);color:var(--brand-d);font-weight:700;font-size:12px;padding:6px 12px;border-radius:999px;margin-bottom:14px}.hero h1{font-size:34px;line-height:1.3;margin:6px 0 12px;letter-spacing:-.5px}.hero h1 .accent{color:var(--brand)}.hero p{color:var(--muted);font-size:16px;max-width:640px;margin:0 auto}.section{padding:30px 0}.section h2{font-size:22px;margin:0 0 6px}.section .lead{color:var(--muted);margin:0 0 18px}.toolbar{justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}.tb-left,.toolbar{display:flex;align-items:center;gap:10px}.tb-left{font-size:16px}.navbtn{width:30px;height:30px;font-size:16px}.navbtn,.today{border:1px solid var(--line);background:var(--card);border-radius:8px;cursor:pointer;color:var(--muted)}.today{padding:4px 12px;font-size:13px}.tb-right{display:flex;align-items:center;gap:14px}.durpick{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.durpick select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:13px;background:var(--card);color:var(--ink)}.tz{color:var(--muted);font-size:13px}.cal2{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.cal2-grid{display:grid;grid-template-columns:56px repeat(5,1fr)}.corner,.dayhead{border-bottom:1px solid var(--line)}.dayhead{text-align:center;padding:10px 0;border-left:1px solid var(--line)}.dayhead .dnum{display:block;font-size:12px;color:var(--muted)}.dayhead .dlabel{font-weight:800;font-size:14px}.timecol{font-size:11px;color:var(--muted);text-align:right;padding:4px 8px 0 0}.c2,.timecol{border-bottom:1px solid var(--line);min-height:46px}.c2{border-left:1px solid var(--line);padding:3px;position:relative}.c2.empty:hover{background:#fafbfd}.c2.spanned{padding:0}.event{border-radius:8px;padding:5px 8px;font-size:11.5px;line-height:1.35;overflow:hidden;color:#fff}.event b{font-weight:800;opacity:.9}.event.busy{background:linear-gradient(135deg,#8a94a6,#6b7686)}.event.tentative{background:repeating-linear-gradient(45deg,#f4b860,#f4b860 6px,#f7c97f 0,#f7c97f 12px);color:#6b4a12}.open{width:100%;height:100%;min-height:40px;border:1.5px dashed var(--brand);background:var(--brand-soft);color:var(--brand-d);border-radius:8px;font-size:11.5px;font-weight:800;cursor:pointer}.open:hover{background:#d6f3e8}.open.sel{background:var(--brand);color:#fff;border-style:solid}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--muted)}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}.lg.busy{background:#6b7686}.lg.tent{background:repeating-linear-gradient(45deg,#f4b860,#f4b860 3px,#f7c97f 0,#f7c97f 6px)}.lg.open{background:var(--brand-soft);border:1.5px dashed var(--brand)}.lg.pick{background:var(--brand)}.relaysec{background:linear-gradient(180deg,#fbfaff,#f6f8fb)}.relay{background:#fff;border:1px solid var(--relay-soft);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.steps{flex-wrap:wrap}.step,.steps{display:flex;align-items:center}.step{gap:10px}.dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;flex:none}.dot.done{background:var(--brand)}.dot.active{background:var(--relay);box-shadow:0 0 0 5px var(--relay-soft)}.dot.wait{background:#c7cedd}.step .who{font-weight:700}.step .st{color:var(--muted);font-size:12px}.bar{width:44px;height:3px;background:var(--line);margin:0 6px;border-radius:2px}.bar.fill{background:var(--brand)}.cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.fcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.fcard .tag{font-size:11px;font-weight:800;color:var(--brand-d)}.fcard.relay-card .tag{color:var(--relay)}.fcard h3{margin:6px 0 4px;font-size:16px}.fcard p{margin:0;color:var(--muted);font-size:13px}.fcard .must{display:inline-block;margin-top:8px;font-size:11px;font-weight:800;color:#fff;background:var(--relay);padding:2px 8px;border-radius:6px}footer{color:var(--muted);font-size:13px;text-align:center;padding:36px 0 56px;border-top:1px solid var(--line);margin-top:18px}@media (max-width:760px){.hero h1{font-size:26px}.cards{grid-template-columns:1fr}.cal2-grid{grid-template-columns:44px repeat(5,1fr)}.event{font-size:10px;padding:3px 5px}.navright{gap:8px}.sync{font-size:11px;padding:4px 8px}}