--- /dev/null
+
+//
+// Mixins
+//
+@mixin control() {
+ display: block;
+ position: absolute;
+ color: white;
+ border: 2px solid white;
+ border-radius: 16px;
+ text-align: center;
+ line-height: 14px;
+ box-shadow: 0 0 3px #444;
+ box-sizing: content-box;
+}
+
+@mixin control-open() {
+ content: '+';
+ background-color: #31b131;
+}
+
+@mixin control-close() {
+ content: '-';
+ background-color: #d33333;
+}
+
+
+//
+// Table styles
+//
+table.dataTable {
+ // Styling for the `inline` type
+ &.dtr-inline.collapsed > tbody {
+ > tr > td:first-child,
+ > tr > th:first-child {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+
+ &:before {
+ top: 8px;
+ left: 4px;
+ height: 16px;
+ width: 16px;
+ @include control;
+ @include control-open;
+ }
+
+ &.dataTables_empty:before {
+ display: none;
+ }
+ }
+
+ > tr.parent {
+ > td:first-child:before,
+ > th:first-child:before {
+ @include control-close;
+ }
+ }
+
+ > tr.child td:before {
+ display: none;
+ }
+ }
+
+ // DataTables' `compact` styling
+ &.dtr-inline.collapsed.compact > tbody {
+ > tr > td:first-child,
+ > tr > th:first-child {
+ padding-left: 27px;
+
+ &:before {
+ top: 5px;
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 12px;
+ }
+ }
+ }
+
+
+ // Styling for the `column` type
+ &.dtr-column > tbody {
+ > tr > td.control,
+ > tr > th.control {
+ position: relative;
+ cursor: pointer;
+
+ &:before {
+ top: 50%;
+ left: 50%;
+ height: 16px;
+ width: 16px;
+ margin-top: -10px;
+ margin-left: -10px;
+ @include control;
+ @include control-open;
+ }
+ }
+
+ > tr.parent {
+ td.control:before,
+ th.control:before {
+ @include control-close;
+ }
+ }
+ }
+
+
+ // Child row styling
+ > tbody > tr.child {
+ padding: 0.5em 1em;
+
+ &:hover {
+ background: transparent !important;
+ }
+
+ ul {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+
+ li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+
+ &:first-child {
+ padding-top: 0;
+ }
+
+ &:last-child {
+ border-bottom: none;
+ }
+ }
+ }
+
+ span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+ }
+
+ span.dtr-data {}
+ }
+}
+