* { box-sizing: border-box; }
body { margin: 0; font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
       color: #222; line-height: 1.6; }
main { padding: 1rem; max-width: 60rem; margin: 0 auto; }
.site-header { display: flex; justify-content: space-between; align-items: center;
               padding: .6rem 1rem; border-bottom: 1px solid #ddd; }
.site-header nav { display: flex; gap: .8rem; align-items: center; }
.brand { font-weight: 700; text-decoration: none; color: #222; }
.flash { background: #fff3cd; margin: 0; padding: .6rem 2rem; list-style: none; }
form.inline { display: inline; }
button.linklike { background: none; border: none; color: #06c;
                  cursor: pointer; padding: 0; font: inherit; }
label { display: block; margin: .6rem 0; }
input[type=email], input[type=password], input[type=text], input[type=url], select {
  width: 100%; max-width: 24rem; padding: .45rem; border: 1px solid #bbb;
  border-radius: 4px; }
button[type=submit], .cta { background: #2b7a4b; color: #fff; border: none;
  padding: .55rem 1.2rem; border-radius: 4px; cursor: pointer;
  text-decoration: none; display: inline-block; }
table.cal { border-collapse: collapse; }
.cal-wrap { overflow-x: auto; }
table.cal th, table.cal td { border: 1px solid #ccc; min-width: 1.9rem;
  text-align: center; padding: .25rem .3rem; font-size: .9rem; }
table.cal td.prop, table.cal th.prop { position: sticky; left: 0; background: #fff;
  text-align: left; min-width: 8rem; font-weight: 600; }
table.cal td.mark-c { background: #cdeccd; }
table.cal td.mark-q { background: #fff5b8; }
table.cal th.sat { color: #06c; } table.cal th.sun { color: #c33; }
.stale { color: #b00; font-size: .8rem; }
.tabs { display: flex; gap: .5rem; margin: .8rem 0; }
.tabs a { padding: .3rem .7rem; border: 1px solid #bbb; border-radius: 4px;
  text-decoration: none; color: #222; }
.tabs a.active { background: #2b7a4b; color: #fff; border-color: #2b7a4b; }
.props td, .props th { padding: .4rem; border-bottom: 1px solid #eee; }
.share-box { background: #f4f7f5; padding: .8rem; border-radius: 6px; margin: 1rem 0; }
.share-box code { user-select: all; word-break: break-all; }
