.row .maze {
  padding: 0 0 20px 20px;
  display: inline-block;
}

.maze .grid { width: 210px; height: 210px; }
.maze .grid .row { width: 210px; }

.small .grid .row > div { width: 40px; height: 40px; }
.medium .grid .row > div { width: 12px; height: 12px; }
.large .grid .row > div { width: 5px; height: 5px; }

.maze .grid { border: 1px solid black; }

.maze .grid .row > div { display: inline-block; border: 1px solid black; background: #ccc; }

.maze .grid div.in { background: #fff; }
.maze .grid div.f { background: #faa; }
.maze .grid div.cursor { background: #7f7; }

.maze .grid div.e { border-right: none; padding-right: 1px; }
.maze .grid div.w { border-left: none; padding-left: 1px; }
.maze .grid div.n { border-top: none; padding-top: 1px; }
.maze .grid div.s { border-bottom: none; padding-bottom: 1px; }

.maze .grid.invert { border: 2px solid black; }
.maze .grid.invert .row div { background: #fff; border: none; padding: 1px; }
.maze .grid.invert div.e { border-right: 1px solid black; padding-right: 0; }
.maze .grid.invert div.w { border-left: 1px solid black; padding-left: 0; }
.maze .grid.invert div.n { border-top: 1px solid black; padding-top: 0; }
.maze .grid.invert div.s { border-bottom: 1px solid black; padding-bottom: 0; }

.maze .grid { border: none; }

.small .grid.padded .row > div { width: 42px; height: 42px; }
.medium .grid.padded .row > div { width: 14px; height: 14px; }
.large .grid.padded .row > div { width: 7px; height: 7px; }

.maze .grid.padded .row > div { border: none; padding: 0px; position: relative; background: #ccc; }

.maze .grid.padded div.in div.c,
.maze .grid.padded div.in.n.u div.wp,
.maze .grid.padded div.in.n.u div.ep,
.maze .grid.padded div.in.w.u div.sp,
.maze .grid.padded div.in.w.u div.np,
.maze .grid.padded div.in.n div.np,
.maze .grid.padded div.in.s div.sp,
.maze .grid.padded div.in.e div.ep,
.maze .grid.padded div.in.w div.wp { background: #fff; }

.maze .grid.padded div.f div.c,
.maze .grid.padded div.f.n.u div.wp,
.maze .grid.padded div.f.n.u div.ep,
.maze .grid.padded div.f.w.u div.sp,
.maze .grid.padded div.f.w.u div.np,
.maze .grid.padded div.f.n div.np,
.maze .grid.padded div.f.s div.sp,
.maze .grid.padded div.f.e div.ep,
.maze .grid.padded div.f.w div.wp { background: #faa; }
.maze .grid.padded div.cursor div.c { background: #7f7; }

.small .grid.padded div.np { width: 30px; height: 5px; border: none; position: absolute; top: 0px; left: 5px; }
.small .grid.padded div.sp { width: 30px; height: 5px; border: none; position: absolute; bottom: 0px; left: 5px; }
.small .grid.padded div.wp { width: 5px; height: 30px; border: none; position: absolute; top: 5px; left: 0px; }
.small .grid.padded div.ep { width: 5px; height: 30px; border: none; position: absolute; top: 5px; right: 0px; }
.small .grid.padded div.c { padding: 0; width: 30px; height: 30px; border: 1px solid black; position: absolute; top: 5px; left: 5px; }

.medium .grid.padded div.np { width: 8px; height: 2px; border: none; position: absolute; top: 0px; left: 2px; }
.medium .grid.padded div.sp { width: 8px; height: 2px; border: none; position: absolute; bottom: 0px; left: 2px; }
.medium .grid.padded div.wp { width: 2px; height: 8px; border: none; position: absolute; top: 2px; left: 0px; }
.medium .grid.padded div.ep { width: 2px; height: 8px; border: none; position: absolute; top: 2px; right: 0px; }
.medium .grid.padded div.c { padding: 0; width: 8px; height: 8px; border: 1px solid black; position: absolute; top: 2px; left: 2px; }

.maze .grid.padded div.e,
.maze .grid.padded div.w,
.maze .grid.padded div.n,
.maze .grid.padded div.s { border: none; padding: 0; }

.maze .grid.padded div.np,
.maze .grid.padded div.sp { padding-right: 1px; padding-left: 1px; }
.maze .grid.padded div.wp,
.maze .grid.padded div.ep { padding-top: 1px; padding-bottom: 1px; }

.maze .grid.padded div.n.u div.ep,
.maze .grid.padded div.n.u div.wp,
.maze .grid.padded div.e div.ep,
.maze .grid.padded div.w div.wp { border-top: 1px solid black; border-bottom: 1px solid black; padding-top: 0px; padding-bottom: 0px; }
.maze .grid.padded div.w.u div.np,
.maze .grid.padded div.w.u div.sp,
.maze .grid.padded div.n div.np,
.maze .grid.padded div.s div.sp { border-left: 1px solid black; border-right: 1px solid black; padding-left: 0; padding-right: 0; }

.maze .grid.padded div.n div.c { border-top: none; padding-top: 1px; }
.maze .grid.padded div.e div.c { border-right: none; padding-right: 1px; }
.maze .grid.padded div.w div.c { border-left: none; padding-left: 1px; }
.maze .grid.padded div.s div.c { border-bottom: none; padding-bottom: 1px; }

.maze .operations { clear: both; text-align: center; padding-top: 5px; }
.maze .operations a { padding: 0px 5px; color: #00f; }
.maze .operations a.disabled { color: #777; }
