flipflop 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +0 -1
  3. data/.travis.yml +23 -27
  4. data/CHANGES.md +7 -0
  5. data/Gemfile +14 -8
  6. data/README.md +27 -1
  7. data/Rakefile +20 -8
  8. data/app/controllers/flipflop/features_controller.rb +20 -10
  9. data/app/controllers/flipflop/strategies_controller.rb +4 -4
  10. data/app/views/flipflop/features/index.html.erb +64 -41
  11. data/app/views/flipflop/stylesheets/_flipflop.css +1 -0
  12. data/app/views/layouts/flipflop.html.erb +8 -1
  13. data/config/features.rb +7 -0
  14. data/config/locales/en.yml +34 -0
  15. data/flipflop.gemspec +0 -5
  16. data/lib/flipflop/configurable.rb +10 -0
  17. data/lib/flipflop/engine.rb +10 -15
  18. data/lib/flipflop/feature_definition.rb +5 -6
  19. data/lib/flipflop/feature_loader.rb +40 -0
  20. data/lib/flipflop/feature_set.rb +7 -9
  21. data/lib/flipflop/group_definition.rb +11 -0
  22. data/lib/flipflop/strategies/abstract_strategy.rb +2 -1
  23. data/lib/flipflop/version.rb +1 -1
  24. data/lib/flipflop.rb +2 -0
  25. data/lib/test_engine/config/features.rb +3 -0
  26. data/lib/test_engine/test_engine.rb +7 -0
  27. data/src/stylesheets/_flipflop.scss +160 -0
  28. data/test/integration/app_test.rb +50 -21
  29. data/test/integration/dashboard_test.rb +395 -52
  30. data/test/templates/nl.yml +30 -0
  31. data/test/templates/test_app_features.rb +7 -0
  32. data/test/templates/test_engine.rb +7 -0
  33. data/test/templates/test_engine_features.rb +3 -0
  34. data/test/test_helper.rb +83 -10
  35. data/test/unit/configurable_test.rb +1 -1
  36. data/test/unit/feature_definition_test.rb +27 -2
  37. data/test/unit/feature_set_test.rb +7 -19
  38. data/test/unit/flipflop_test.rb +16 -11
  39. data/test/unit/group_definition_test.rb +21 -0
  40. data/test/unit/strategies/abstract_strategy_test.rb +14 -25
  41. data/test/unit/strategies/active_record_strategy_test.rb +4 -0
  42. data/test/unit/strategies/cookie_strategy_test.rb +4 -0
  43. data/test/unit/strategies/default_strategy_test.rb +10 -4
  44. data/test/unit/strategies/lambda_strategy_test.rb +11 -27
  45. data/test/unit/strategies/query_string_strategy_test.rb +4 -0
  46. data/test/unit/strategies/redis_strategy_test.rb +4 -0
  47. data/test/unit/strategies/session_strategy_test.rb +4 -0
  48. data/test/unit/strategies/test_strategy_test.rb +4 -0
  49. metadata +22 -9
  50. data/app/assets/stylesheets/flipflop.css +0 -1
@@ -1 +0,0 @@
1
- /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active{outline:0}a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]>.caret,.dropup>.btn>.caret,section.flipflop table tbody td.toggle div.toolbar div.group .dropup>input[type=submit]>.caret{border-top-color:#000 !important}.label,section.flipflop table tbody td.status span{border:1px solid #000}.table,section.flipflop table{border-collapse:collapse !important}.table td,section.flipflop table td,.table th,section.flipflop table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}@-moz-viewport{width:device-width}@-ms-viewport{width:device-width}@-o-viewport{width:device-width}@-webkit-viewport{width:device-width}@viewport{width:device-width}html{font-size:16px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:1rem;line-height:1.5;color:#373a3c;background-color:#fff}[tabindex="-1"]:focus{outline:none !important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #818a91}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:bold}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}pre{margin-top:0;margin-bottom:1rem}figure{margin:0 0 1rem}img{vertical-align:middle}[role="button"]{cursor:pointer}a,area,button,[role="button"],input,label,select,summary,textarea{touch-action:manipulation}table{background-color:transparent}caption{padding-top:0.75rem;padding-bottom:0.75rem;color:#818a91;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,textarea{margin:0;line-height:inherit;border-radius:0}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type="search"]{box-sizing:inherit;-webkit-appearance:none}output{display:inline-block}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:0.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.75rem}.h4{font-size:1.5rem}.h5{font-size:1.25rem}.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300}.display-2{font-size:5.5rem;font-weight:300}.display-3{font-size:4.5rem;font-weight:300}.display-4{font-size:3.5rem;font-weight:300}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:5px}.dl-horizontal{margin-right:-1.875rem;margin-left:-1.875rem}.dl-horizontal::after{content:"";display:table;clear:both}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:0.5rem 1rem;margin-bottom:1rem;font-size:1.25rem;border-left:0.25rem solid #eceeef}.blockquote-footer{display:block;font-size:80%;line-height:1.5;color:#818a91}.blockquote-footer::before{content:"\2014 \00A0"}.blockquote-reverse{padding-right:1rem;padding-left:0;text-align:right;border-right:0.25rem solid #eceeef;border-left:0}.blockquote-reverse .blockquote-footer::before{content:""}.blockquote-reverse .blockquote-footer::after{content:"\00A0 \2014"}.table,section.flipflop table{width:100%;max-width:100%;margin-bottom:1rem}.table th,section.flipflop table th,.table td,section.flipflop table td{padding:0.75rem;line-height:1.5;vertical-align:top;border-top:1px solid #eceeef}.table thead th,section.flipflop table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.table tbody+tbody,section.flipflop table tbody+tbody{border-top:2px solid #eceeef}.table .table,section.flipflop table .table,.table section.flipflop table,section.flipflop .table table,section.flipflop table table{background-color:#fff}.table-sm th,.table-sm td{padding:0.3rem}.table-bordered{border:1px solid #eceeef}.table-bordered th,.table-bordered td{border:1px solid #eceeef}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd),section.flipflop table tbody tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover tbody tr:hover{background-color:#f5f5f5}.table-active,.table-active>th,.table-active>td{background-color:#f5f5f5}.table-hover .table-active:hover{background-color:#e8e8e8}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e8e8e8}.table-success,.table-success>th,.table-success>td{background-color:#dff0d8}.table-hover .table-success:hover{background-color:#d0e9c6}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>th,.table-info>td{background-color:#d9edf7}.table-hover .table-info:hover{background-color:#c4e3f3}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>th,.table-warning>td{background-color:#fcf8e3}.table-hover .table-warning:hover{background-color:#faf2cc}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>th,.table-danger>td{background-color:#f2dede}.table-hover .table-danger:hover{background-color:#ebcccc}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.table-responsive{display:block;width:100%;min-height:0.01%;overflow-x:auto}.thead-inverse th,section.flipflop table thead th{color:#fff;background-color:#373a3c}.thead-default th{color:#55595c;background-color:#eceeef}.table-inverse{color:#eceeef;background-color:#373a3c}.table-inverse.table-bordered{border:0}.table-inverse th,.table-inverse td,.table-inverse thead th{border-color:#55595c}.table-reflow thead{float:left}.table-reflow tbody{display:block;white-space:nowrap}.table-reflow th,.table-reflow td{border-top:1px solid #eceeef;border-left:1px solid #eceeef}.table-reflow th:last-child,.table-reflow td:last-child{border-right:1px solid #eceeef}.table-reflow thead:last-child tr:last-child th,.table-reflow thead:last-child tr:last-child td,.table-reflow tbody:last-child tr:last-child th,.table-reflow tbody:last-child tr:last-child td,.table-reflow tfoot:last-child tr:last-child th,.table-reflow tfoot:last-child tr:last-child td{border-bottom:1px solid #eceeef}.table-reflow tr{float:left}.table-reflow tr th,.table-reflow tr td{display:block !important;border:1px solid #eceeef}.btn,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]{display:inline-block;font-weight:normal;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid transparent;padding:0.375rem 1rem;font-size:1rem;line-height:1.5;border-radius:0.25rem;transition:all 0.2s ease-in-out}.btn:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:focus,.btn.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.focus[type=submit],.btn:active:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active:focus,.btn:active.focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active.focus,.btn.active:focus,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]:focus,.btn.active.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.active.focus[type=submit]{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:focus,.btn:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:hover{text-decoration:none}.btn.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.focus[type=submit]{text-decoration:none}.btn:active,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active,.btn.active,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]{background-image:none;outline:0}.btn.disabled,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled[type=submit],.btn:disabled,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:disabled{cursor:not-allowed;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.btn-primary:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:focus,.btn-primary.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.focus[type=submit].active{color:#fff;background-color:#025aa5;border-color:#01549b}.btn-primary:active,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:active,.btn-primary.active,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit],.open>.btn-primary.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle[type=submit].active{color:#fff;background-color:#025aa5;border-color:#01549b;background-image:none}.btn-primary:active:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:active:hover,.btn-primary:active:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:active:focus,.btn-primary:active.focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:active.focus,.btn-primary.active:hover,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]:hover,.btn-primary.active:focus,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]:focus,.btn-primary.active.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.active.focus[type=submit],.open>.btn-primary.dropdown-toggle:hover,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle[type=submit].active:hover,.open>.btn-primary.dropdown-toggle:focus,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle[type=submit].active:focus,.open>.btn-primary.dropdown-toggle.focus,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle.focus[type=submit].active{color:#fff;background-color:#014682;border-color:#01315a}.btn-primary.disabled:focus,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled[type=submit].active:focus,.btn-primary.disabled.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled.focus[type=submit].active,.btn-primary:disabled:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:disabled:focus,.btn-primary:disabled.focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:disabled.focus{background-color:#0275d8;border-color:#0275d8}.btn-primary.disabled:hover,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled[type=submit].active:hover,.btn-primary:disabled:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit].active:disabled:hover{background-color:#0275d8;border-color:#0275d8}.btn-secondary,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:not(.active){color:#373a3c;background-color:#fff;border-color:#ccc}.btn-secondary:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:hover:not(.active){color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:focus:not(.active),.btn-secondary.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.focus[type=submit]:not(.active){color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary:active,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active:not(.active),.btn-secondary.active,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]:not(.active),.open>.btn-secondary.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle[type=submit]:not(.active){color:#373a3c;background-color:#e6e6e6;border-color:#adadad;background-image:none}.btn-secondary:active:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active:hover:not(.active),.btn-secondary:active:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active:focus:not(.active),.btn-secondary:active.focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:active.focus:not(.active),.btn-secondary.active:hover,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]:hover:not(.active),.btn-secondary.active:focus,section.flipflop table tbody td.toggle div.toolbar div.group input.active[type=submit]:focus:not(.active),.btn-secondary.active.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.active.focus[type=submit]:not(.active),.open>.btn-secondary.dropdown-toggle:hover,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle[type=submit]:hover:not(.active),.open>.btn-secondary.dropdown-toggle:focus,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle[type=submit]:focus:not(.active),.open>.btn-secondary.dropdown-toggle.focus,section.flipflop table tbody td.toggle div.toolbar div.group .open>input.dropdown-toggle.focus[type=submit]:not(.active){color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.btn-secondary.disabled:focus,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled[type=submit]:focus:not(.active),.btn-secondary.disabled.focus,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled.focus[type=submit]:not(.active),.btn-secondary:disabled:focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:disabled:focus:not(.active),.btn-secondary:disabled.focus,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:disabled.focus:not(.active){background-color:#fff;border-color:#ccc}.btn-secondary.disabled:hover,section.flipflop table tbody td.toggle div.toolbar div.group input.disabled[type=submit]:hover:not(.active),.btn-secondary:disabled:hover,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]:disabled:hover:not(.active){background-color:#fff;border-color:#ccc}.btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#2aabd2;background-image:none}.btn-info:active:hover,.btn-info:active:focus,.btn-info:active.focus,.btn-info.active:hover,.btn-info.active:focus,.btn-info.active.focus,.open>.btn-info.dropdown-toggle:hover,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle.focus{color:#fff;background-color:#269abc;border-color:#1f7e9a}.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info:disabled:focus,.btn-info:disabled.focus{background-color:#5bc0de;border-color:#5bc0de}.btn-info.disabled:hover,.btn-info:disabled:hover{background-color:#5bc0de;border-color:#5bc0de}.btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#419641}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#419641;background-image:none}.btn-success:active:hover,.btn-success:active:focus,.btn-success:active.focus,.btn-success.active:hover,.btn-success.active:focus,.btn-success.active.focus,.open>.btn-success.dropdown-toggle:hover,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle.focus{color:#fff;background-color:#398439;border-color:#2d672d}.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success:disabled:focus,.btn-success:disabled.focus{background-color:#5cb85c;border-color:#5cb85c}.btn-success.disabled:hover,.btn-success:disabled:hover{background-color:#5cb85c;border-color:#5cb85c}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#eb9316}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#eb9316;background-image:none}.btn-warning:active:hover,.btn-warning:active:focus,.btn-warning:active.focus,.btn-warning.active:hover,.btn-warning.active:focus,.btn-warning.active.focus,.open>.btn-warning.dropdown-toggle:hover,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle.focus{color:#fff;background-color:#d58512;border-color:#b06d0f}.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning:disabled:focus,.btn-warning:disabled.focus{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning.disabled:hover,.btn-warning:disabled:hover{background-color:#f0ad4e;border-color:#f0ad4e}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#c12e2a;background-image:none}.btn-danger:active:hover,.btn-danger:active:focus,.btn-danger:active.focus,.btn-danger.active:hover,.btn-danger.active:focus,.btn-danger.active.focus,.open>.btn-danger.dropdown-toggle:hover,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle.focus{color:#fff;background-color:#ac2925;border-color:#8b211e}.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger:disabled:focus,.btn-danger:disabled.focus{background-color:#d9534f;border-color:#d9534f}.btn-danger.disabled:hover,.btn-danger:disabled:hover{background-color:#d9534f;border-color:#d9534f}.btn-primary-outline{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.btn-primary-outline:focus,.btn-primary-outline.focus,.btn-primary-outline:active,.btn-primary-outline.active,.open>.btn-primary-outline.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary-outline:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary-outline.disabled:focus,.btn-primary-outline.disabled.focus,.btn-primary-outline:disabled:focus,.btn-primary-outline:disabled.focus{border-color:#43a7fd}.btn-primary-outline.disabled:hover,.btn-primary-outline:disabled:hover{border-color:#43a7fd}.btn-secondary-outline{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.btn-secondary-outline:focus,.btn-secondary-outline.focus,.btn-secondary-outline:active,.btn-secondary-outline.active,.open>.btn-secondary-outline.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline:hover{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline.disabled:focus,.btn-secondary-outline.disabled.focus,.btn-secondary-outline:disabled:focus,.btn-secondary-outline:disabled.focus{border-color:white}.btn-secondary-outline.disabled:hover,.btn-secondary-outline:disabled:hover{border-color:white}.btn-info-outline{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.btn-info-outline:focus,.btn-info-outline.focus,.btn-info-outline:active,.btn-info-outline.active,.open>.btn-info-outline.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info-outline:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info-outline.disabled:focus,.btn-info-outline.disabled.focus,.btn-info-outline:disabled:focus,.btn-info-outline:disabled.focus{border-color:#b0e1ef}.btn-info-outline.disabled:hover,.btn-info-outline:disabled:hover{border-color:#b0e1ef}.btn-success-outline{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.btn-success-outline:focus,.btn-success-outline.focus,.btn-success-outline:active,.btn-success-outline.active,.open>.btn-success-outline.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success-outline:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success-outline.disabled:focus,.btn-success-outline.disabled.focus,.btn-success-outline:disabled:focus,.btn-success-outline:disabled.focus{border-color:#a3d7a3}.btn-success-outline.disabled:hover,.btn-success-outline:disabled:hover{border-color:#a3d7a3}.btn-warning-outline{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.btn-warning-outline:focus,.btn-warning-outline.focus,.btn-warning-outline:active,.btn-warning-outline.active,.open>.btn-warning-outline.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning-outline:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning-outline.disabled:focus,.btn-warning-outline.disabled.focus,.btn-warning-outline:disabled:focus,.btn-warning-outline:disabled.focus{border-color:#f8d9ac}.btn-warning-outline.disabled:hover,.btn-warning-outline:disabled:hover{border-color:#f8d9ac}.btn-danger-outline{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.btn-danger-outline:focus,.btn-danger-outline.focus,.btn-danger-outline:active,.btn-danger-outline.active,.open>.btn-danger-outline.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger-outline:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger-outline.disabled:focus,.btn-danger-outline.disabled.focus,.btn-danger-outline:disabled:focus,.btn-danger-outline:disabled.focus{border-color:#eba5a3}.btn-danger-outline.disabled:hover,.btn-danger-outline:disabled:hover{border-color:#eba5a3}.btn-link{font-weight:normal;color:#0275d8;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link:disabled{background-color:transparent}.btn-link,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.btn-link:disabled:focus,.btn-link:disabled:hover{color:#818a91;text-decoration:none}.btn-lg,.btn-group-lg>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-lg>input[type=submit]{padding:0.75rem 1.25rem;font-size:1.25rem;line-height:1.33333;border-radius:0.3rem}.btn-sm,.btn-group-sm>.btn,section.flipflop table tbody td.toggle div.toolbar div.group>.btn,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]{padding:0.25rem 0.75rem;font-size:0.875rem;line-height:1.5;border-radius:0.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,section.flipflop table tbody td.toggle div.toolbar div.group>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit],.btn-group-vertical>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]{position:relative;float:left}.btn-group>.btn:focus,section.flipflop table tbody td.toggle div.toolbar div.group>.btn:focus,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:focus,section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:focus,.btn-group>.btn:active,section.flipflop table tbody td.toggle div.toolbar div.group>.btn:active,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:active,section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:active,.btn-group>.btn.active,section.flipflop table tbody td.toggle div.toolbar div.group>.btn.active,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input.active[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group>input.active[type=submit],.btn-group-vertical>.btn:focus,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]:focus,.btn-group-vertical>.btn:active,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]:active,.btn-group-vertical>.btn.active,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input.active[type=submit]{z-index:2}.btn-group>.btn:hover,section.flipflop table tbody td.toggle div.toolbar div.group>.btn:hover,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:hover,section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:hover,.btn-group-vertical>.btn:hover,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]:hover{z-index:2}.btn-group .btn+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group input[type=submit]+.btn,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group .btn+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group .btn+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group .btn-group input[type=submit]+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]+input[type=submit],.btn-group .btn+.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group .btn+.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group input[type=submit]+.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]+.btn-group,.btn-group section.flipflop table tbody td.toggle div.toolbar .btn+div.group,section.flipflop table tbody td.toggle div.toolbar .btn-group .btn+div.group,section.flipflop table tbody td.toggle div.toolbar div.group .btn+div.group,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group input[type=submit]+div.group,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit]+div.group,.btn-group .btn-group+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group+.btn,.btn-group section.flipflop table tbody td.toggle div.toolbar div.group+.btn,section.flipflop table tbody td.toggle div.toolbar .btn-group div.group+.btn,section.flipflop table tbody td.toggle div.toolbar div.group div.group+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group .btn-group+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group .btn-group+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group .btn-group div.group+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group div.group+input[type=submit],.btn-group .btn-group+.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group+.btn-group,.btn-group section.flipflop table tbody td.toggle div.toolbar div.group+.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group div.group+.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group div.group+.btn-group,.btn-group section.flipflop table tbody td.toggle div.toolbar .btn-group+div.group,section.flipflop table tbody td.toggle div.toolbar .btn-group .btn-group+div.group,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group+div.group,.btn-group section.flipflop table tbody td.toggle div.toolbar div.group+div.group,section.flipflop table tbody td.toggle div.toolbar .btn-group div.group+div.group,section.flipflop table tbody td.toggle div.toolbar div.group div.group+div.group{margin-left:-1px}.btn-toolbar,section.flipflop table tbody td.toggle div.toolbar{margin-left:-5px}.btn-toolbar::after,section.flipflop table tbody td.toggle div.toolbar::after{content:"";display:table;clear:both}.btn-toolbar .btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group,section.flipflop table tbody td.toggle div.toolbar div.group,.btn-toolbar .input-group,section.flipflop table tbody td.toggle div.toolbar .input-group{float:left}.btn-toolbar>.btn,section.flipflop table tbody td.toggle div.toolbar>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-toolbar>input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group div.toolbar>input[type=submit],.btn-toolbar>.btn-group,section.flipflop table tbody td.toggle div.toolbar>.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-toolbar>div.group,section.flipflop table tbody td.toggle div.toolbar>div.group,.btn-toolbar>.input-group,section.flipflop table tbody td.toggle div.toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody td.toggle div.toolbar div.group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:not(:first-child):not(:last-child):not(.dropdown-toggle),section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar div.group>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:first-child,section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody td.toggle div.toolbar div.group>.btn:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:first-child:not(:last-child):not(.dropdown-toggle),section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),section.flipflop table tbody td.toggle div.toolbar div.group>.btn:last-child:not(:first-child),section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]:last-child:not(:first-child),section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child),section.flipflop table tbody td.toggle div.toolbar div.group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group,section.flipflop table tbody td.toggle div.toolbar div.group>div.group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody td.toggle div.toolbar div.group>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>.btn-group:not(:first-child):not(:last-child)>input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:not(:first-child):not(:last-child)>input[type=submit],section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:not(:first-child):not(:last-child)>input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group>div.group:not(:first-child):not(:last-child)>input[type=submit]{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>.btn-group:first-child:not(:last-child)>input[type=submit]:last-child,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>input[type=submit]:last-child,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>input[type=submit]:last-child,section.flipflop table tbody td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>input[type=submit]:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group>div.group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar div.group>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>.btn-group:last-child:not(:first-child)>input[type=submit]:first-child,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-group:last-child:not(:first-child)>input[type=submit]:first-child,section.flipflop table tbody td.toggle div.toolbar .btn-group>div.group:last-child:not(:first-child)>input[type=submit]:first-child,section.flipflop table tbody td.toggle div.toolbar div.group>div.group:last-child:not(:first-child)>input[type=submit]:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,section.flipflop table tbody td.toggle div.toolbar div.group .dropdown-toggle:active,.btn-group.open .dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.open.group .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group>.btn+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group>input[type=submit]+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group>input[type=submit]+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.btn-group-lg.group>.btn+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-lg.btn-group>input[type=submit]+.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar div.group div.btn-group-lg.group>input[type=submit]+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn .caret,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit] .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-lg>input[type=submit] .caret{border-width:0.3em 0.3em 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret,.dropup section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-lg>input[type=submit] .caret,section.flipflop table tbody td.toggle div.toolbar div.group .dropup .btn-group-lg>input[type=submit] .caret{border-width:0 0.3em 0.3em}.btn-group-vertical>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit],.btn-group-vertical>.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group,.btn-group-vertical>.btn-group>.btn,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn-group>input[type=submit],section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group>input[type=submit]{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group::after,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group::after{content:"";display:table;clear:both}.btn-group-vertical>.btn-group>.btn,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn-group>input[type=submit],section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group>input[type=submit]{float:none}.btn-group-vertical>.btn+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]+input[type=submit],.btn-group-vertical>.btn+.btn-group,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]+.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>.btn+div.group,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]+div.group,.btn-group-vertical>.btn-group+.btn,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group+.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn-group+input[type=submit],section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>div.group+input[type=submit],.btn-group-vertical>.btn-group+.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group+.btn-group,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>.btn-group+div.group,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group+div.group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child),section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]:first-child:not(:last-child){border-top-right-radius:0.25rem;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child),section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>input[type=submit]:last-child:not(:first-child){border-bottom-left-radius:0.25rem;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:not(:first-child):not(:last-child)>.btn,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>input[type=submit],section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:not(:first-child):not(:last-child)>input[type=submit]{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>.btn:last-child,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:first-child:not(:last-child)>input[type=submit]:last-child,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>input[type=submit]:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:last-child:not(:first-child)>.btn:first-child,section.flipflop table tbody td.toggle div.toolbar div.group .btn-group-vertical>.btn-group:last-child:not(:first-child)>input[type=submit]:first-child,section.flipflop table tbody td.toggle div.toolbar .btn-group-vertical>div.group:last-child:not(:first-child)>input[type=submit]:first-child{border-top-right-radius:0;border-top-left-radius:0}[data-toggle="buttons"]>.btn input[type="radio"],section.flipflop table tbody td.toggle div.toolbar div.group [data-toggle="buttons"]>input[type=submit] input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],section.flipflop table tbody td.toggle div.toolbar div.group [data-toggle="buttons"]>input[type=submit] input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],section.flipflop table tbody td.toggle div.toolbar [data-toggle="buttons"]>div.group>.btn input[type="radio"],section.flipflop table tbody td.toggle div.toolbar div.group [data-toggle="buttons"]>.btn-group>input[type=submit] input[type="radio"],section.flipflop table tbody td.toggle div.toolbar [data-toggle="buttons"]>div.group>input[type=submit] input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"],section.flipflop table tbody td.toggle div.toolbar [data-toggle="buttons"]>div.group>.btn input[type="checkbox"],section.flipflop table tbody td.toggle div.toolbar div.group [data-toggle="buttons"]>.btn-group>input[type=submit] input[type="checkbox"],section.flipflop table tbody td.toggle div.toolbar [data-toggle="buttons"]>div.group>input[type=submit] input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.label,section.flipflop table tbody td.status span{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25rem}.label:empty,section.flipflop table tbody td.status span:empty{display:none}.btn .label,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit] .label,.btn section.flipflop table tbody td.status span,section.flipflop table tbody td.status .btn span,section.flipflop table tbody td.toggle div.toolbar div.group input[type=submit] td.status span,section.flipflop table tbody td.status td.toggle div.toolbar div.group input[type=submit] span{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-pill,section.flipflop table tbody td.status span{padding-right:.6em;padding-left:.6em;border-radius:10rem}.label-default,section.flipflop table tbody td.status span.off{background-color:#818a91}.label-default[href]:focus,section.flipflop table tbody td.status span[href].off:focus,.label-default[href]:hover,section.flipflop table tbody td.status span[href].off:hover{background-color:#687077}.label-primary{background-color:#0275d8}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#025aa5}.label-success,section.flipflop table tbody td.status span.on{background-color:#5cb85c}.label-success[href]:focus,section.flipflop table tbody td.status span[href].on:focus,.label-success[href]:hover,section.flipflop table tbody td.status span[href].on:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}section.flipflop{margin-left:auto;margin-right:auto;padding-left:0.9375rem;padding-right:0.9375rem;margin:5rem 0 0}section.flipflop::after{content:"";display:table;clear:both}section.flipflop table thead th{position:relative;cursor:default}section.flipflop table thead th[data-tooltip]:before,section.flipflop table thead th[data-tooltip]:after{transition:all 0.2s ease-out;transform:translateY(0.2rem) translateZ(0);opacity:0;display:block;position:absolute}section.flipflop table thead th[data-tooltip]:before{content:attr(data-tooltip);width:98%;left:0;bottom:3.75rem;margin:0;padding:0.5rem 0.75rem;background:#55595c;border-radius:0.2rem;font-size:0.875rem;font-weight:normal;pointer-events:none}section.flipflop table thead th[data-tooltip]:after{content:" ";width:0;height:0;left:1rem;bottom:3.25rem;border-left:solid transparent 0.5rem;border-right:solid transparent 0.5rem;border-top:solid #55595c 0.5rem}section.flipflop table thead th:hover[data-tooltip]:before,section.flipflop table thead th:hover[data-tooltip]:after{transform:translateY(0) translateZ(0);opacity:1}section.flipflop table tbody td.status{width:2rem;font-size:1.1rem}section.flipflop table tbody td.status span{width:2rem}section.flipflop table tbody td.name{min-width:11rem;padding-top:0.9rem;font-weight:bold}section.flipflop table tbody td.description{min-width:11rem;padding-top:0.9rem}section.flipflop table tbody td.toggle{min-width:11rem}section.flipflop table tbody td.toggle div.toolbar{margin-left:0}