3 // --------------------------------------------------
 
     5 // Make the div behave like a button
 
    10   vertical-align: middle; // match .btn alignment given font-size hack above
 
    14     // Bring the "active" button to the front
 
    22       // Remove focus outline when dropdown JS adds it after closing the menu
 
    28 // Prevent double borders when buttons are next to each other
 
    33   .btn-group + .btn-group {
 
    38 // Optional: Group multiple button groups together for a toolbar
 
    45   // Space out series of button groups
 
    55 .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 
    59 // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
 
    60 .btn-group > .btn:first-child {
 
    62   &:not(:last-child):not(.dropdown-toggle) {
 
    63     .border-right-radius(0);
 
    66 // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
 
    67 .btn-group > .btn:last-child:not(:first-child),
 
    68 .btn-group > .dropdown-toggle:not(:first-child) {
 
    69   .border-left-radius(0);
 
    72 // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
 
    73 .btn-group > .btn-group {
 
    76 .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 
    79 .btn-group > .btn-group:first-child {
 
    82     .border-right-radius(0);
 
    85 .btn-group > .btn-group:last-child > .btn:first-child {
 
    86   .border-left-radius(0);
 
    89 // On active and open, don't show outline
 
    90 .btn-group .dropdown-toggle:active,
 
    91 .btn-group.open .dropdown-toggle {
 
    98 // Remix the default button sizing classes into new ones for easier manipulation.
 
   100 .btn-group-xs > .btn { .btn-xs(); }
 
   101 .btn-group-sm > .btn { .btn-sm(); }
 
   102 .btn-group-lg > .btn { .btn-lg(); }
 
   105 // Split button dropdowns
 
   106 // ----------------------
 
   108 // Give the line between buttons some depth
 
   109 .btn-group > .btn + .dropdown-toggle {
 
   113 .btn-group > .btn-lg + .dropdown-toggle {
 
   118 // The clickable button for toggling the menu
 
   119 // Remove the gradient and set the same inset shadow as the :active state
 
   120 .btn-group.open .dropdown-toggle {
 
   121   .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
 
   123   // Show no shadow for `.btn-link` since it has no other button styles.
 
   130 // Reposition the caret
 
   134 // Carets in other button sizes
 
   136   border-width: @caret-width-large @caret-width-large 0;
 
   137   border-bottom-width: 0;
 
   139 // Upside down carets for .dropup
 
   140 .dropup .btn-lg .caret {
 
   141   border-width: 0 @caret-width-large @caret-width-large;
 
   145 // Vertical button groups
 
   146 // ----------------------
 
   148 .btn-group-vertical {
 
   151   > .btn-group > .btn {
 
   158   // Clear floats so dropdown menus can be properly placed
 
   169   > .btn-group + .btn-group {
 
   175 .btn-group-vertical > .btn {
 
   176   &:not(:first-child):not(:last-child) {
 
   179   &:first-child:not(:last-child) {
 
   180     border-top-right-radius: @border-radius-base;
 
   181     .border-bottom-radius(0);
 
   183   &:last-child:not(:first-child) {
 
   184     border-bottom-left-radius: @border-radius-base;
 
   185     .border-top-radius(0);
 
   188 .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
 
   191 .btn-group-vertical > .btn-group:first-child {
 
   194     .border-bottom-radius(0);
 
   197 .btn-group-vertical > .btn-group:last-child > .btn:first-child {
 
   198   .border-top-radius(0);
 
   203 // Justified button groups
 
   204 // ----------------------
 
   206 .btn-group-justified {
 
   210   border-collapse: separate;
 
   223 // Checkbox and radio options
 
   224 [data-toggle="buttons"] > .btn > input[type="radio"],
 
   225 [data-toggle="buttons"] > .btn > input[type="checkbox"] {