text:
/*
Notes:

Grayish Color = #c7c3b0
semi-trans.png = 50% opacity
semi-trans75.png = 75% opacity
semi-trans-grayish.png = 75% opacity

*/
/*----------- Google Fonts for Cyberpunk --------*/
/*font-family: 'Audiowide', cursive;

font-family: 'Days One', sans-serif;*/

/*----------- Font Information -----------*/
/*@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/cinzel/v1/Hm1qjDlZpOdVXoa-QGE7_w.ttf) format('truetype');
}
@font-face {
  font-family: 'Shadows Into Light';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/shadowsintolight/v3/clhLqOv7MXn459PTh0gXYBayoCksK7A5ZWkzVNukUdQ.ttf) format('truetype');
}

@font-face {
  font-family: 'Covered By Your Grace';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/coveredbyyourgrace/v3/6ozZp4BPlrbDRWPe3EBGA8Swx7O1nRJXGXrmuE0DD7s.ttf) format('truetype');
}

@font-face {
  font-family: 'Rock Salt';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/rocksalt/v3/Q94aHXFHGip10K5uxi1jOKCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
}

@font-face {
  font-family: 'Bad Script';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/badscript/v2/rL_b2ND61EQmMOJ8CRr1fi3USBnSvpkopQaUR-2r7iU.ttf) format('truetype');
}

@font-face {
  font-family: 'Calligraffitti';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/calligraffitti/v4/vLVN2Y-z65rVu1R7lWdvyF9q9cSakIY5dTu4rft1WBw.ttf) format('truetype');
}

@font-face {
  font-family: 'Homemade Apple';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/homemadeapple/v3/yg3UMEsefgZ8IHz_ryz86J9Wgegw1HyrDAZq28nXLYY.ttf) format('truetype');
}

@font-face {
  font-family: 'Nothing You Could Do';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/nothingyoucoulddo/v3/jpk1K3jbJoyoK0XKaSyQAQB8Hyktk_aPnlUAWJgZcX8.ttf) format('truetype');
}

@font-face {
  font-family: 'Architects Daughter';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/architectsdaughter/v3/RXTgOOQ9AAtaVOHxx0IUBOlC2pU_uJZcAXPUd4HCQp8.ttf) format('truetype');
}

@font-face {
  font-family: 'Audiowide';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/audiowide/v1/8XtYtNKEyyZh481XVWfVOqCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
}

@font-face {
  font-family: 'Days One';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/daysone/v3/mM2FsD73BN33S6yWJhnlqfesZW2xOQ-xsNqO47m55DA.ttf) format('truetype');
}*/

@font-face {
    font-family: 'cinzelregular';
    src: url('http://www.geeksville.us/fonts/Cinzel-Regular-webfont.eot');
    src: url('http://www.geeksville.us/fonts/Cinzel-Regular-webfont.eot?#iefix') format('embedded-opentype'),
         url('http://www.geeksville.us/fonts/Cinzel-Regular-webfont.woff') format('woff');
    src: url('http://www.geeksville.us/fonts/Cinzel-Regular-webfont.ttf') format('truetype'),
         url('http://www.geeksville.us/fonts/Cinzel-Regular-webfont.svg#cinzelregular') format('svg');*/
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Handwriting';
    src: url('http://www.geeksville.us/fonts/Handwriting.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Glitch';
    src: url('http://www.geeksville.us/fonts/AGlitchInTime.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'CuttyFruty';
    src: url('http://www.geeksville.us/fonts/CuttyFruty.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Saucy';
    src: url('http://www.geeksville.us/fonts/Saucy_Jack.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Rujis';
    src: url('http://www.geeksville.us/fonts/Rujis.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Dashley';
    src: url('http://www.geeksville.us/fonts/Dashley.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Graziano';
    src: url('http://www.geeksville.us/fonts/Graziano.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'BlackletterHand';
    src: url('http://www.geeksville.us/fonts/BlackletterHand.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Architect';
    src: url('http://www.geeksville.us/fonts/ArchitectsDaughter.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;

}

/*@font-face {
    font-family: 'Rufscript';
    src: url('http://www.geeksville.us/fonts/Rufscript_v2.ttf') format('opentype')
    font-weight: normal;
    font-style: normal;

}*/

/*Font Drop Down Menu*/
.sheet-fontDropdown {
    /* fixed widths work best;*/
    width: 100px;
    /*border: dotted 1px;*/
    display: inline-block;
}

.sheet-fontlist {
	display: inline-block;
}

.sheet-fontlist {
    vertical-align: middle;
    width: 100px;
    height: 20px;
    /*border: solid 1px;*/
}
.sheet-fontlist input,
.sheet-fontlist input + span {
    display:none;
    z-index: 1;
    /*width: 150px;*/
}

.sheet-fontlist:hover {
    background: silver;
    /*position:absolute;*/
    position: relative;
    top: -10px;
    width: 130px;
    height: auto;
    z-index: 1;
    padding: 5px;
}

.sheet-fontlist:hover input ,
.sheet-fontlist:hover input + span {
    display:inline-block;
}

/*Margin placeholder*/
.sheet-fontlist:hover input + span {
    /*push the margin to the right
    just to get the radio and label
    to be on their own line*/
   margin-right: 50%;
}

.sheet-fontlist:hover span {
    display: inline-block;
}

.sheet-font1,
.sheet-font2,
.sheet-font3,
.sheet-font4,
.sheet-font5,
.sheet-font6,
.sheet-font7,
.sheet-font8,
.sheet-font9,
.sheet-font10 {
    width: 100px;
    height: 20px;
    background-image: url("https://www.geeksville.us/roll20/semi-trans.png");
    background-color: transparent;
    /*display: inline-block;*/
    color: black;
    line-height: 20px;
    text-align: left;
    display: inline-block;
    display: none;
}
.sheet-font2 {
    font-family: "Handwriting";
    /*font-family: 'Shadows Into Light', cursive;*/
    font-size: 200%;
}

.sheet-font3 {
    font-family: "Glitch";
    /*font-family: 'Covered By Your Grace', cursive;*/
    font-size: 1.8em;
}
.sheet-font4 {
    font-family: "CuttyFruty";
    /*font-family: 'Rock Salt', cursive;*/
    font-size: 15px;
}
.sheet-font5 {
    font-family: "Saucy";
    /*font-family: 'Bad Script', cursive;*/
    font-size: 15px;
    font-size: 175%;
}
.sheet-font6 {
    font-family: "Rujis";
    /*font-family: 'Calligraffitti', cursive;*/
    font-size: 15px;
}
.sheet-font7 {
    font-family: "Dashley";
    /*font-family: 'Homemade Apple', cursive;*/
    font-size: 25px;
}
.sheet-font8 {
    font-family: "Graziano";
    /*font-family: 'Nothing You Could Do', cursive;*/
    font-size: 25px;
}
/*.sheet-font9 {
    font-family: "BlackletterHand";
    font-size: 25px;
}*/
.sheet-font10 {
    font-family: "Architect";
    /*font-family: 'Architects Daughter', cursive;*/
    font-size: 15px;
}

.sheet-fontlist:not(:hover) input[value="1"]:checked ~ .sheet-font1,
.sheet-fontlist:not(:hover) input[value="2"]:checked ~ .sheet-font2,
.sheet-fontlist:not(:hover) input[value="3"]:checked ~ .sheet-font3,
.sheet-fontlist:not(:hover) input[value="4"]:checked ~ .sheet-font4,
.sheet-fontlist:not(:hover) input[value="5"]:checked ~ .sheet-font5,
.sheet-fontlist:not(:hover) input[value="6"]:checked ~ .sheet-font6,
.sheet-fontlist:not(:hover) input[value="7"]:checked ~ .sheet-font7,
.sheet-fontlist:not(:hover) input[value="8"]:checked ~ .sheet-font8,
.sheet-fontlist:not(:hover) input[value="9"]:checked ~ .sheet-font9,
.sheet-fontlist:not(:hover) input[value="10"]:checked ~ .sheet-font10 {
    display: block;
}

.sheet-useFont2:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont2:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Handwriting";
	font-size: 200%;
}

.sheet-useFont3:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont3:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Glitch";
	font-size: 175%;
}
.sheet-useFont4:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont4:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "CuttyFruty";
	font-size: 125%;
}
.sheet-useFont5:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont5:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Saucy";
	font-size: 150%;
}
.sheet-useFont6:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont6:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Rujis";
}
.sheet-useFont7:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont7:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Dashley";
	font-size: 175%;
}
.sheet-useFont8:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont8:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Graziano";
	font-size: 130%;
}
.sheet-useFont9:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont9:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "BlackletterHand";
	font-size: 130%;
}
.sheet-useFont10:checked ~ [data-groupname=repeating_quests] > .repitem input.sheet-standardQuest,
.sheet-useFont10:checked ~ [data-groupname=repeating_quests] > .repitem textarea.sheet-Questtextarea {
	font-family: "Architect";
	font-size: 75%;
}
/*End Font Drop Down Menu*/

/*----------- End Font Information -----------*/

/*----------- Background Info -----------*/

.sheet-useBackground input[value="1"]:checked ~ *.sheet-background {
	background-image: none;
	background-color: white;
	/*background-image: url("http://www.geeksville.us/roll20/oldMap_seamless_2.png");
	background-size: 845px 900px;*/
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    /*background-position: center;
    background-origin: content-box;*/
}

.sheet-useBackground input[value="2"]:checked ~ *.sheet-background {
	background-image: url("http://www.geeksville.us/roll20/oldMap_seamless_2.png");
	background-size: 845px 900px;
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="3"]:checked ~ *.sheet-background {
	background-image: url("http://www.geeksville.us/roll20/Z-background.jpg");
	background-size: 845px 564px;
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="4"]:checked ~ *.sheet-background {
	/*background-image: url("http://www.geeksville.us/roll20/NYC-Night_2.jpg");*/
	/*background-image: url("http://www.geeksville.us/roll20/noir3.jpg");*/
	background-image: url("http://www.geeksville.us/roll20/NewNoir2.jpg");
	background-size: 850px 920px;
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="5"]:checked ~ *.sheet-background {
	background-image: url("http://www.geeksville.us/roll20/LastParsec-Background.jpg");
	background-size: 840px 1060px;
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
    -webkit-border-image:url("http://www.geeksville.us/roll20/LastParsec-Border.png"); /*  Safari 3.1-5 */
    -o-border-image:url("http://www.geeksville.us/roll20/LastParsec-Border.png"); /*round; Opera 11-12.1 */
    -moz-border-image:url("http://www.geeksville.us/roll20/LastParsec-Border.png");
    border-image:url("http://www.geeksville.us/roll20/LastParsec-Border.png") 100 50;
    border-image-width: 20px;
}

.sheet-useBackground input[value="6"]:checked ~ *.sheet-background {
	background-image: url("http://www.geeksville.us/roll20/supers.jpg");
	background-size: 840px 564px;
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="7"]:checked ~ *.sheet-background {
	/*background-image: url("http://www.geeksville.us/roll20/cyberpunk2.jpg");*/
	background-image: url("http://www.geeksville.us/roll20/cyberpunk-2.5.jpg");
	background-size: 840px 840px;
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="8"]:checked ~ *.sheet-background { /*Hellfrost*/
	/*background-image: url("http://www.geeksville.us/roll20/cyberpunk2.jpg");*/
	background-image: url("http://www.geeksville.us/roll20/Hellfrost_4.jpg");
	background-size: 840px 840px;
    background-repeat: repeat;
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="9"]:checked ~ *.sheet-background { /*Hellfrost: Land of Fire*/
	background-image: url("http://www.geeksville.us/roll20/Hellfrost_LoF.jpg");
	background-size: 840px 840px;
    background-repeat: repeat;
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

.sheet-useBackground input[value="10"]:checked ~ *.sheet-background { /*Hellfrost: Land of Fire*/
	background-image: url("http://www.geeksville.us/roll20/lankhmar-bg-1.jpg");
	background-size: 840 840px;
    background-repeat: repeat;
    /*background-attachment: fixed;*/
    background-position: center;
    background-origin: content-box;
}

/*----------- End Background Info -----------*/

/*----------- Logo Configuration Info -----------*/

.sheet-SWD,
.sheet-PotSM,
.sheet-TLP,
.sheet-Zombie,
.sheet-NecessaryEvil,
.sheet-Deadlands,
.sheet-DeadlandsNoir,
.sheet-DeadlandsHoE,
.sheet-InterfaceZero,
.sheet-Hellfrost,
.sheet-Hellfrost-LoF,
.sheet-Lankhmar,
.sheet-AllforOne {
	max-width: 250px;
	/*max-height: 100px;*/
	margin-left: auto;
    margin-right: auto;
	display: none;
}

.sheet-ShowLogo input[value="1"]:checked ~ .sheet-SWD{
	display: block;
}

.sheet-ShowLogo input[value="2"]:checked ~ .sheet-PotSM{
	display: block;
}

.sheet-ShowLogo input[value="3"]:checked ~ .sheet-TLP{
	display: block;
}

.sheet-ShowLogo input[value="4"]:checked ~ .sheet-Zombie{
	display: block;
}

.sheet-ShowLogo input[value="5"]:checked ~ .sheet-NecessaryEvil{
	display: block;
}

.sheet-ShowLogo input[value="6"]:checked ~ .sheet-Deadlands{
	display: block;
}

.sheet-ShowLogo input[value="7"]:checked ~ .sheet-DeadlandsNoir{
	display: block;
}
.sheet-ShowLogo input[value="8"]:checked ~ .sheet-DeadlandsHoE{
	display: block;
}

.sheet-ShowLogo input[value="9"]:checked ~ .sheet-InterfaceZero{
	display: block;
}

.sheet-ShowLogo input[value="10"]:checked ~ .sheet-Hellfrost {
	display: block;
}

.sheet-ShowLogo input[value="11"]:checked ~ .sheet-Hellfrost-LoF {
	display: block;
}

.sheet-ShowLogo input[value="12"]:checked ~ .sheet-Lankhmar {
	display: block;
}

.sheet-ShowLogo input[value="13"]:checked ~ .sheet-AllforOne {
	display: block;
}

/*----------- End Logo Configuration Info -----------*/

/*----------- Disclaimer Info Setup -----------*/

.sheet-disclaimer{
	font-size: 10px;
	text-align: center;
	display: none;
}

.sheet-logo:checked + span.sheet-disclaimer {
	display: inline-block;
}

.sheet-playDisclaimer input[value="1"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="4"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="3"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="2"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="5"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="6"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="7"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="8"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="12"]:checked + span.sheet-disclaimer::after {
	content: "logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
	display: inline-block;
}

/*.sheet-playDisclaimer input[value="3"]:checked + span.sheet-disclaimer::before {
	content: "The Last Parsec logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
}*/

/*.sheet-playDisclaimer input[value="2"]:checked + span.sheet-disclaimer::before {
	content: "The Pirates of the Spanish Main logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
}*/

/*.sheet-playDisclaimer input[value="5"]:checked + span.sheet-disclaimer::before {
	content: "The Necessary Evil logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
}*/

/*.sheet-playDisclaimer input[value="6"]:checked + span.sheet-disclaimer::before {
	content: "The Deadlands logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
}*/

/*.sheet-playDisclaimer input[value="7"]:checked + span.sheet-disclaimer::before {
	content: "The Deadlands: Noir logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
}*/

/*.sheet-playDisclaimer input[value="8"]:checked + span.sheet-disclaimer::before {
	content: "The Deadlands: Hell on Earth logo is a trademark of Pinnacle Entertainment Group. Used with permission.";
}*/

.sheet-playDisclaimer input[value="9"]:checked + span.sheet-disclaimer::after {
	content: "logo is a trademark of Gun Metal Games. Used with permission.";
}

.sheet-playDisclaimer input[value="10"]:checked + span.sheet-disclaimer::after,
.sheet-playDisclaimer input[value="11"]:checked + span.sheet-disclaimer::after {
	content: "logo is a trademark of Triple Ace Games. Used with permission.";
	display: inline-block;
}

.sheet-playDisplaimer input[value="13"]:checked +span.sheet-disclaimer::after {
	content: "logo © 2016 Triple Ace Games Ltd. All for One: Régime Diabolique and all related marks and logos are trademarks of  Triple Ace Games Ltd. Ubiquity Roleplaying System, Exile Games Studio, and all associated logos and trademarks are copyright, Exile Games Studio, LLC. Used with permission.";
}

/*--- Web Site Info For Disclaimer ---*/

.sheet-CoURL {
	font-size: 10px;
	text-align: center;
}

.sheet-playDisclaimer input[value="1"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="2"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="3"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="4"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="5"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="6"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="7"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="8"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="12"]:checked ~ span.sheet-CoURL::after {
	content: "http://www.peginc.com/";
}

.sheet-playDisclaimer input[value="9"]:checked ~ span.sheet-CoURL::after {
	content: "http://www.gunmetalgames.com/";
}

.sheet-playDisclaimer input[value="10"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="11"]:checked ~ span.sheet-CoURL::after,
.sheet-playDisclaimer input[value="13"]:checked ~ span.sheet-CoURL::after {
	content: "http://www.tripleacegames.com/";
}

/*----------- End Disclaimer Info Setup -----------*/

/*----------- Configuration Specific Items Setup -----------*/

.sheet-hideArcanum:checked + input.sheet-tab5,
.sheet-hideArcanum:checked ~ span.sheet-tab5,
.sheet-hideArcanum:checked + div.sheet-section-arcanum,
.sheet-showVehicles:not(:checked) + input.sheet-tab7,
.sheet-showVehicles:not(:checked) ~ span.sheet-tab7,
.sheet-showVehicles:not(:checked) + div.sheet-section-vehicles {
	display: none;
}

.sheet-useCodeName:checked + label.sheet-characterName::before {
	content: "Code Name:";
}

.sheet-useCodeName:not(:checked) + label.sheet-characterName::before {
	content: "Name:";
}

.sheet-useThreatRating:not(:checked) + label.sheet-Rank-n-XP::before {
	content: "XP/Rank";
}

.sheet-useThreatRating:checked + label.sheet-Rank-n-XP::before {
	content: "XP/Threat Rating";
	font-size: 9px;
}

.sheet-useParaHuman:not(:checked) + h4.sheet-CharacterHistory::before {
	content: "Physical Appearance + Personal History";
}

.sheet-useParaHuman:checked + h4.sheet-CharacterHistory::before {
	content: "Physical Appearance + Personal History + Origins of Parahuman Abilities";
}

/*---------Money---------*/
.sheet-usePieces input[value="0"]:checked ~ label.sheet-Money::before {
	content: "Money:";
}

.sheet-usePieces input[value="1"]:checked ~ label.sheet-Money::before {
	content: "Pieces of Eight:";
	font-size: 10px;
}

.sheet-usePieces input[value="2"]:checked ~ label.sheet-Money::before {
	content: "Clams:";
}

.sheet-usePieces input[value="4"]:checked ~ label.sheet-Money::before {
	content: "Credits:";
}

.sheet-usePieces input[value="3"]:checked ~ label.sheet-Money::before {
	content: "Iron Tiks:";
}

.sheet-LankhmarMoney {
	display: none;
}

.sheet-usePieces input[value="3"]:checked ~ .sheet-LankhmarMoney{
	display: inline-block;
}

.sheet-usePieces input[value="5"]:checked ~ label.sheet-Money::before {
	content: "Livre:";
}

/*----------- Roll Template Configuration --------------*/

input.sheet-rt {
    width: 113px;
    height: 160px;
    cursor: pointer;
	position: relative;
	opacity: 0;
	z-index: 9999;
}

span.sheet-rt {
    height: 160px;
    width: 113px;
    padding: 2px;
    display: inline-block;
    margin-left: -118px;
    position: relative;
    vertical-align: top;
}

span.sheet-rtinner {
	display: block;
	margin-left: 1px;
	margin-top: 1px;
	height: 156px;
	width: 109px;
	border: solid black 1px;
	text-align: center;
	background-color: white;
}

input.sheet-rt0:checked + span.sheet-rt0,
input.sheet-rt1:checked + span.sheet-rt1,
input.sheet-rt2:checked + span.sheet-rt2 {
    background-color: #B2FFFF;
}

/*----------- End Configuration Specific Items Setup -----------*/

/*----------- Character Sheet Type setup --------------*/

.charsheet div.sheet-player,
.charsheet div.sheet-npc {
    /*visibility: hidden;
    opacity: 0;
	max-height:0;
	overflow: hidden;*/
	display: none;
    float: left;
}

.charsheet input.sheet-is-npc:checked ~ div.sheet-npc,
.charsheet input.sheet-is-npc:not(:checked )~ div.sheet-player
{
	/*max-height: 999999px;
	visibility: visible;
	opacity: 1;
	transition: opacity 0.5s linear 0s;*/
	display: block;
	overflow: auto;
}

.charsheet input.sheet-is-npc {
    width: 20%;
    height: 16px;
    cursor: pointer;
	position: relative;
	opacity: 0;
	z-index: 9999;
}

.charsheet span.sheet-is-npc-tab::before {
    content: "Switch to Ally / Mook";
}

.charsheet span.sheet-is-npc-tab {
    text-align: center;
    display: inline-block;
    width: 20%;
    height: 16px;
    font-size: 9px;

	background: #c7c3b0; /*#65763c;*/
	color: black; /*white;*/
	font-weight: bold;
	border-radius: 4px;
	margin-left: -20%
}

.charsheet input.sheet-is-npc:checked + span.sheet-is-npc-tab {
    /*background: #93537c; */
    background: black;
    color: white;
	border-radius: 4px;
}

.charsheet input.sheet-is-npc:checked + span.sheet-is-npc-tab::before {
	content: "Switch to Wild Card"
}

/*----------- Character Sheet Type setup End -------------*/

/*----------- Tabs Setup -------------*/

div.sheet-core-content { display: none; width:840px;}

.charsheet div[class^="sheet-section"],
.charsheet div[class^="sheet-options"] {
	/*visibility: hidden;
	opacity: 0;
	max-height:0;
	overflow: hidden;*/
	display: none;
}

.charsheet input.sheet-tab1:checked ~ div.sheet-section-core,
.charsheet input.sheet-tab2:checked ~ div.sheet-section-edges,
.charsheet input.sheet-tab3:checked ~ div.sheet-section-skills,
.charsheet input.sheet-tab4:checked ~ div.sheet-section-gear,
.charsheet input.sheet-tab5:checked ~ div.sheet-section-arcanum,
.charsheet input.sheet-tab6:checked ~ div.sheet-section-journal,
.charsheet input.sheet-tab7:checked ~ div.sheet-section-vehicles,
.charsheet input.sheet-tab8:checked ~ div.sheet-section-combat,
.charsheet input.sheet-attacks:checked ~ div.sheet-options-attack,
.charsheet input.sheet-defend:checked ~ div.sheet-options-defend,
.charsheet input.sheet-misc:checked ~ div.sheet-options-other, {
	/*max-height: 999999px;
	visibility: visible;
	opacity: 1;
	transition: opacity 0.5s linear 0s;
	overflow: auto;*/
	display: block;
}

.charsheet input.sheet-tab99:checked ~ div[class^="sheet-section"] {
	/*max-height: 999999px;
	visibility: visible;
	opacity: 1;
	transition: opacity 0.5s linear 0s;*/
	display: block;
}

.charsheet input.sheet-hideArcanum:checked + div.sheet-section-arcanum,
.charsheet input.sheet-showVehicles:not(:checked) + div.sheet-section-vehicles {
	display: none;
}

.charsheet input.sheet-tab,
.charsheet input.sheet-combat-options {
    /*width: 100px;*/
    width: 87px;
    height: 40px;
    cursor: pointer;
	position: relative;
	opacity: 0;
	z-index: 9999;
}

.charsheet span.sheet-tab,
.charsheet span.sheet-combat-options {
	text-align: center;
    display: inline-block; /*originally inline-block*/
	/*font-size: 13px;	*/
	font-size: 11px;
	background: #c7c3b0; /*originally 4a6486*/
	color: black; /*originally white*/
	/*font-family: "Tinos", "Quattrocento", "Lustria", "Buenardserif", serif;*/
	font-weight: bold;
	border-radius: 4px;

	width: 87px; /*originally 87px*/
    height: 40px; /*originally 20px*/
    cursor: pointer;
	position: relative;
	vertical-align: middle;
	margin-left: -91px; /*originally 91px*/
}

.charsheet input.sheet-combat {
	width: 25px;
	height: 40px;
	cursor: pointer;
	position: relative;
	opacity: 0;
	z-index: 99;
}

.charsheet span.sheet-combat {
	width: 25px;
	height: 40px;
	font-size 16px;
	text-align: center;
	display: inline-block;
	cursor: pointer;
	position: relative;
	verticalalign: middle;
	margin-left: -29px;
}

.charsheet input.sheet-tab1:checked + span.sheet-tab1,
.charsheet input.sheet-tab2:checked + span.sheet-tab2,
.charsheet input.sheet-tab3:checked + span.sheet-tab3,
.charsheet input.sheet-tab4:checked + span.sheet-tab4,
.charsheet input.sheet-tab5:checked + span.sheet-tab5,
.charsheet input.sheet-tab6:checked + span.sheet-tab6,
.charsheet input.sheet-tab7:checked + span.sheet-tab7,
.charsheet input.sheet-tab99:checked + span.sheet-tab99,
.charsheet input.sheet-attacks:checked + span.sheet-attacks,
.charsheet input.sheet-defend:checked + span.sheet-defend,
.charsheet input.sheet-misc:checked + span.sheet-misc {

    background: #dbc792;  /*originally ab8b57*/
    color: #755b27; /*originally white*/
	border-radius: 4px;
}

.charsheet input.sheet-combat:checked + span.sheet-combat {
	border: black 1px dotted;
	border-radius: 4px;
}

/*----------- End Tab Setup -----------*/

/*----------- Main Setup -----------*/

.charsheet .sheet-maindiv{
	width: 830px;
}
.charsheet .sheet-background {
	width: 840px;
}

.charsheet .sheet-cdiv {
    width:810px;
    /*border: 1px dotted;*/
    padding-right: 15px;
    padding-left: 15px;
}

.sheet-imagespacer{
	width: 830px;
	padding-left: 5px;
	padding-right: 15px;
}

.charsheet span.sheet-spacer {
	display: block;
	margin-top: 5px;
}

.charsheet span.sheet-5pxshim {
	display: block;
	margin-left: 5px;
}

.charsheet span.sheet-10pxshim {
	display: block;
	margin-left: 10px;
}

h1.sheet-sheetHeaderWC {
	text-align: center;
	color: #dbc792;
    background-color: #755b27;
	border-radius: 15px;
	/*font-family: "cinzelregular";*/
	font-family: 'Cinzel', serif;
}

h1.sheet-sheetHeaderM {
	text-align: center;
	color: black;
    background-color: #c7c3b0;
	border-radius: 15px;
	font-family: "cinzelregular";
}

h2.sheet-sectionHeader {
    text-align: center;
	color: #755b27;
    background-color: #dbc792;
	border-radius: 15px;
	font-family: "cinzelregular";
}

.sheet-subsectionHeader {
	text-align:center;
	background-color: black;
	color: #c7c3b0;
	border-radius: 5px;
}

.sheet-subsubsectionHeader {
	text-align:center;
	background-color: #c7c3b0;
	color: black;
	border-radius: 5px;
}

input[type=number] {
    -moz-appearance: textfield;
    -webkit-appearance: textfield;
}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    -webkit-appearance: textfield;
}

.sheet-standardtext {
	background-color: transparent;
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	/*background-image: url("https://raw.githubusercontent.com/finderski/roll20-character-sheets/master/SavageWorlds-Tabbed/semi-trans75.png");*/
	color: black;
	/*font-weight: bold;*/
	font-size: .75em;
}

.charsheet input[type=text].sheet-standard {
	width: 140px;
	border-top: none;
	border-right: none;
	border-left: none;
	border-bottom: solid 1px;
	/*background-color: transparent;*/
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
	font-weight: bold;
}

input.sheet-standardQuest {
	width: 140px;
	border-top: none;
	border-right: none;
	border-left: none;
	border-bottom: solid 1px;
	/*color: transparent;*/
	background-color: transparent;
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
}

.sheet-smalltextarea{
    height:100px;
    background-image: url("http://i.imgur.com/e1Cfspj.png");
}

.sheet-Questtextarea{
    height:100px;
    background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png");
	color: black;
}

.sheet-largetextarea{
    height:50px;
    width:669px;
    background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png");
	color: black;
}

textarea.sheet-Questtextarea {
	background-color: transparent;
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
}

input.sheet-standardNum {
	width: 37px;
	border-top: none;
	border-right: none;
	border-left: none;
	border-bottom: solid 1px;
	text-align: center;
	/*color: transparent;*/
	/*background-color: transparent;*/
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
	font-weight: bold;
}

input.sheet-derivedStat {
	width: 37px;
	text-align: center;
	/*background-color: white;*/
	/*background-color: transparent;*/
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
	font-weight: bold;
}

img.sheet-protect {
	margin-left: -46px;
	margin-right: 2px;
	margin-bottom: -10px;
	z-index: 9999;
	width: 45px;
	height: 28px;
	position: relative;
}

input.sheet-modifier {
	width: 35px;
	text-align: center;
	/*background-color: transparent;*/
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
	font-weight: bold;
}

.charsheet select {
	-webkit-appearance: none;
	-moz-appearance: none;
	vertical-align: top;
	padding-top: 0px;
}

label.sheet-nameRankXp,
label.sheet-AttributeLabel,
span.sheet-nameRankXp {
    width:80px;
    font-weight: bold;
    font-size: 12px;
    padding-left: 5px;
    padding-right: 5px;
    /*background-color: #c7c3b0;*/
    color: black;
    background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png");
    border-radius: 8px;
}

.sheet-spaceBetween {
	/*line-height: 35px;*/
	font-weight: bold;
	color: black;
	background-image: url('http://i.imgur.com/e1Cfspj.png');
}

label.sheet-AttributeLabel {
	font-size: 15px;
	line-height: 25px;
}

.sheet-repeatingHeader {
	/*text-align: left; */
	background-color: black;
	color: #c7c3b0;
	border-radius: 5px;
	padding-left: 5px;
	margin-right: 0px;
	margin-left: 0px;
}

.sheet-WCSkillsRow {
	width: 785px;
	padding: 5px;
	margin-bottom: 5px;
	/*background-image: url("http://i.imgur.com/e1Cfspj.png");*/
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	/*background-image: url("https://raw.githubusercontent.com/finderski/roll20-character-sheets/master/SavageWorlds-Tabbed/semi-trans75.png");*/
}

button[type=roll].sheet-GM-button::before {
    background-image: none;
    /*background-color: #f2f5d3;*/
    /*background-color: white;*/
    font-size: 13px;
    font-family: sans-serif;
    content: "gm";
}

button[type=roll].sheet-GM-button {
    background-image: none;
    background-color: #f2f5d3;
}

.sheet-MooknameRankXp{
    width:75px;
}

.sheet-weight {
	color: black;
    background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png");
    border-radius: 8px;
    padding: 5px;
}

label.sheet-AttributeLabel {
	width: 60px;
}

.sheet-AttBorder {
	border: solid 1px;
	/*width: 88px;*/
	width: auto;
	height: 28px;
	margin: 0px;
	padding: 2px;
	margin-right: 0px;
	margin-left: -3px;
	margin-top: -3px;
	background-image: url("http://i.imgur.com/e1Cfspj.png");
}

.sheet-AttBorder > input.sheet-NewDieType:checked{
	height: auto;
	/*margin-top: -2px;*/
}

.sheet-AttMod {
	padding: 0px;
	width: auto;
	margin: 0px;
	margin-right: -3px;
}

.sheet-LinkedAtt {
	padding: 0px;
	margin-left:0px;
	border: none;
	width: 15px;
	background-image: url("http://i.imgur.com/e1Cfspj.png");
}

.sheet-numSpan {
	width: 50px;
	font-size: 12px;
	font-weight: bold;
	text-align: center;
	background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png");
	color: black;
	display: inline-block;
}

/*.sheet-additionalrules{
    width:46%;
    margin-left:10px;
    margin-right:10px;
}*/

.sheet-formula{
    display:inline-block;
}

.sheet-skills label {
    display:inline-block;
    text-align:left;
    width:75px;
}

.charsheet label {
    display: inline-block;
    text-align: left;
    width:75px;
}

.skilllabel {
    display: inline-block;
    width:200px;
    text-align: left;
}

.sheet-rank {
    width: 165px;
    margin-bottom:1px;
}

/*.sheet-col strong.sheet-dee {
    font-size: 1.4em;
    font-weight: bold;
	padding-right: 4px;
}*/

.charsheet input.sheet-short {
	width: 3.5em;
	text-align: center;
	background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png");
	color: black;
}

.charsheet table td, .charsheet table th {
    font-size: 1em;
    font-weight: bold;
    text-align: right;
}

.charsheet table {
	background-image: url("http://i.imgur.com/e1Cfspj.png");
}

.charsheet table.sheet-combatoptions,
.charsheet table.sheet-combatoptions td {
	border: none;
}

.charsheet table.sheet-combatoptions th {
	border-bottom: solid 1px black;
}

.charsheet table.sheet-combatoptions tr:nth-child(even) {
	background-color: #c7c3b0;
}

.charsheet table.sheet-combatoptions td,
.charsheet table.sheet-combatoptions th {
	font-size: .75em;
	text-align: left;
	vertical-align: top;
}

select.sheet-dtype {
    width: 35px;
    vertical-align: top;
	 -webkit-appearance: none;
	 -moz-appearance: none;
	 appearance: none;
	background-color: transparent;
	background-image: url("http://i.imgur.com/e1Cfspj.png");
	color: black;
}

/*.sheet-DStatsTable th {
    text-align: center;
}*/

/*----------- End Main Setup -----------*/

/*----------- Dice Icon Drop Down Menu -----------*/

.sheet-dtypeOrig {
	width: 55px;
	display:inline;
}

.sheet-NewDieType:checked + *.sheet-dtypeOrig,
.sheet-NewDieType:checked ~ [data-groupname=repeating_skills] > .repitem .sheet-dtypeOrig,
.sheet-WDNewDieType:checked + *.sheet-dtypeOrig,
.sheet-WDNewDieType:checked ~ [data-groupname=repeating_skills] > .repitem .sheet-dtypeOrig {
	display: none;
}

.sheet-dtypedropdown {
    /* fixed widths work best;*/
    width: 35px;
    display: none;
}

.sheet-dietype {
	display:inline-block;
}

.sheet-dietype {
    vertical-align: middle;
    width: 35px;
    height: 35px;
}

.sheet-dietype input,
.sheet-dietype input + span {
    display:none;
    z-index: 1;
}

.sheet-dietype:hover {
    background: silver;
    /*opacity: .9;*/
    position:relative;
    top: -5px;
    width: 50px;
    height: auto;
    z-index: 1;
    padding: 5px;
}
.sheet-dietype:hover > .sheet-d4 {
    display: none;
}
.sheet-dietype:hover input ,
.sheet-dietype:hover input + span {
    display:inline;
}

.sheet-dietype:hover input + span {

   margin-right:10px;
}

.sheet-dietype:hover span {
    display: inline-block;
}

.sheet-d0 {
	/*background-position: -411px -1px;*/
    width: 35px;
    height: 35px;
    /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/
    font-family: "dicefontd4";
    font-size: 50px;
    color: red;
    line-height:25px;
    text-align: center;
    /*text-align: right;*/
    /*line-height: 25px;*/
    background-image: url("http://i.imgur.com/e1Cfspj.png");
    /*padding-bottom: 25px;*/
    /*background-repeat: no-repeat;*/
    /*color: transparent;*/
    /*display: inline-block;*/
    display: none;
}

.sheet-d4 {
    /*background-position: -411px -1px;*/
    width: 35px;
    height: 35px;
    /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/
    font-family: "dicefontd4";
    font-size: 50px;
    color: red;
    line-height:25px;
    text-align: center;
    /*text-align: right;*/
    /*line-height: 25px;*/
    background-image: url("http://i.imgur.com/e1Cfspj.png");
    /*padding-bottom: 25px;*/
    /*background-repeat: no-repeat;*/
    /*color: transparent;*/
    /*display: inline-block;*/
    display: none;
}
.sheet-d6 {
    /*background-position: -411px -1px;*/
    width: 35px;
    height: 35px;
    /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/
    font-family: "dicefontd6";
    font-size: 40px;
    color: black;
    line-height:35px;
    text-align: center;
    /*text-align: right;*/
    /*line-height: 25px;*/
    background-image: url("http://i.imgur.com/e1Cfspj.png");
    /*background-repeat: no-repeat;*/
    /*color: transparent;*/
    display: inline-block;
    display: none;
}
.sheet-d8 {
    /*background-position: -703px -1px;*/
    width: 35px;
    height: 35px;
    /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/
    font-family: "dicefontd8";
    font-size: 40px;
    color: black;
    line-height:35px;
    text-align: center;
    /*text-align: right;*/
    /*line-height: 25px;*/
    background-image: url("http://i.imgur.com/e1Cfspj.png");
    /*background-repeat: no-repeat;*/
    /*color: transparent;*/
    display: inline-block;
    display: none;
}
.sheet-d10 {
    /*background-position: -411px -1px;*/
    width: 35px;
    height: 35px;
    /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/
    font-family: "dicefontd10";
    font-size: 45px;
    color: blue;
    line-height:35px;
    text-align: center;
    /*text-align: right;*/
    /*line-height: 25px;*/
    background-image: url("http://i.imgur.com/e1Cfspj.png");
    /*background-repeat: no-repeat;*/
    /*color: transparent;*/
    display: inline-block;
    display: none;
}
.sheet-d12 {
    /*background-position: -411px -1px;*/
    width: 35px;
    height: 35px;
    /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/
    font-family: "dicefontd12";
    font-size: 40px;
    color: green;
    line-height:35px;
    text-align: center;
    /*text-align: right;*/
    /*line-height: 25px;*/
    background-image: url("http://i.imgur.com/e1Cfspj.png");
    /*background-repeat: no-repeat;*/
    /*color: transparent;*/
    display: inline-block;
    display: none;
}

.sheet-dietype:not(:hover) input[value="0"]:checked ~ .sheet-d0 {
    display: block;
}
.sheet-dietype:not(:hover) input[value="4"]:checked ~ .sheet-d4 {
    display: block;
}
.sheet-dietype:not(:hover) input[value="6"]:checked ~ .sheet-d6 {
    display: block;
}
.sheet-dietype:not(:hover) input[value="8"]:checked ~ .sheet-d8 {
    display: block;
}
.sheet-dietype:not(:hover) input[value="10"]:checked ~ .sheet-d10 {
    display: block;
}
.sheet-dietype:not(:hover) input[value="12"]:checked ~ .sheet-d12 {
    display: block;
}

/*----------- End Dice Menu -----------*/

/*----------- Tool Tips -----------*/

.sheet-tooltip {
    outline: none;
    cursor: help;
    font-family: "Pictos";
}

.sheet-tooltip p,li,strong { /*line-height: 30px;*/ font-family: sans-serif; }
.sheet-tooltip:hover span {
    display: block;
    position: absolute;
}
.sheet-tooltip:hover { text-decoration: none; }
.sheet-tooltip span {
    display: none;
    border-radius: 4px;
    box-shadow: 5px 5px 8px #ccc;
    z-index: 10;
    padding: 14px 20px;
    margin-top: -30px;
    margin-left: 28px;
    width: 300px;
    line-height: 16px;
    color: #111;
    border: 1px solid #dca;
    background: #fffaf0;
}

/*----------- End Tool Tips -----------*/

/*----------- Danger & Critical Indicator -----------*/

.charsheet .sheet-danger,
.charsheet .sheet-critical {
	display: none;
}

.charsheet input.sheet-danger:checked ~ input.sheet-strain {
	background: #e8a400;
}

.charsheet input.sheet-critical:checked ~ input.sheet-strain {
	background: #e93a41;
}

/*----------- Danger & Critical Indicator -----------*/

/*----------- Hiding/Unhiding Things -----------*/

/* Hiding */

.sheet-normalbutton,
.sheet-templatebutton {
	display: none;
}

.sheet-buttonbox[value="0"]:checked ~ .sheet-normalbutton {
	display: inline-block;
}

.sheet-buttonbox[value="0"]:not(:checked) ~ .sheet-templatebutton {
	display: inline-block;
}

.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_skills] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_mskills] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_meleeweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_rangeweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_dmgspells] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_mmeleeweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_mrangeweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_mdmgspells] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_sailweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_flyingweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_groundweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_wsweapons] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname*="spec"] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_fencingstyle] > .repitem .sheet-normalbutton,
.sheet-buttonbox[value="0"]:checked ~ [data-groupname=repeating_mfencingstyle] > .repitem .sheet-normalbutton {
	display: inline-block;
}

.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_skills] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_mskills] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_meleeweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_rangeweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_dmgspells] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_mmeleeweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_mrangeweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_mdmgspells] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_sailweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_flyingweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_groundweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_wsweapons] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname*="spec"] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_fencingstyle] > .repitem .sheet-templatebutton,
.sheet-buttonbox[value="0"]:not(:checked) ~ [data-groupname=repeating_mfencingstyle] > .repitem .sheet-templatebutton {
	display: inline-block;
}

.sheet-arrow:checked ~ *.sheet-formula{
    display:none;
}

.sheet-arrow:checked ~ *.sheet-hindrance{
	display:none;
}

.sheet-loadlimit,
.sheet-vehicleTypes,
.sheet-SkillSpec,
.sheet-staticBoating,
.sheet-staticClimbing,
.sheet-staticDriving,
.sheet-staticFaith,
.sheet-staticGambling,
.sheet-staticGuts,
.sheet-staticHealing,
.sheet-staticIntimidation,
.sheet-staticInvestigation,
.sheet-staticLockpicking,
.sheet-staticNotice,
.sheet-staticPersuasion,
.sheet-staticPiloting,
.sheet-staticPsionics,
.sheet-staticRepair,
.sheet-staticRiding,
.sheet-staticShooting,
.sheet-staticSpellcasting,
.sheet-staticStealth,
.sheet-staticStreetwise,
.sheet-staticSurvival,
.sheet-staticSwimming,
.sheet-staticTaunt,
.sheet-staticThrowing,
.sheet-staticTracking,
.sheet-staticRitual,
.sheet-staticWeirdScience,
.sheet-Fame,
.sheet-Glory,
.sheet-Homeworld,
.sheet-archetype,
.sheet-FencingStyle,
.sheet-Languages,
.sheet-tap,
.sheet-Augmentations,
.sheet-aug528,
.sheet-aug9212,
.sheet-Species,
.sheet-Occupation,
.sheet-ShipName,
.sheet-engrams,
.sheet-Sanity,
.sheet-civilian,
.sheet-Grit,
.sheet-NT,
.sheet-WorstNightmare,
.sheet-Motivation,
.sheet-NoS,
.sheet-Injuries,
.sheet-useHB,
.sheet-Firewall,
.sheet-Strain,
.sheet-StreetCred,
.sheet-Corruption,
.sheet-advancements,

.sheet-ship-sailing,
.sheet-ship-flying,
.sheet-ship-groundvehicle,
.sheet-ship-walker,

.sheet-useSpecies:checked ~ *.sheet-Race,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_meleeweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_rangeweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_dmgspells] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_mmeleeweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_mrangeweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_mdmgspells] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_sailingShip] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_flyingShip] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_sailweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_flyingweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_groundweapons] > .repitem .sheet-useStandard,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_wsweapons] > .repitem .sheet-useStandard,
.sheet-HideHindrance:checked ~ *.sheet-hindrance,
.sheet-HideEdges:checked ~ *.sheet-edge,
.sheet-HideArmor:checked ~ *.sheet-armor,
.sheet-HideMelee:checked ~ *.sheet-melee,
.sheet-HideRanged:checked ~ *[class^="sheet-ranged"],

.sheet-HideVehicles:checked ~ *[class^="sheet-vehicleTypes"],
.sheet-HideVehicles:checked ~ *.sheet-vehicleTypes.sheet-allVehicles,
/*.sheet-HideSailing:checked ~ *.sheet-ship-sailing.sheet-isSailing,*/
.sheet-HideSailing:checked ~ *.sheet-isSailing,
.sheet-HideFlying:checked ~ *.sheet-isFlying,
.sheet-HideGround:checked ~ *.sheet-isGround,
.sheet-HideWalker:checked ~ *.sheet-isWalker,
/*.sheet-HideFlying:checked ~ *.sheet-ship-flying.sheet-isFlying,*/
/*.sheet-HideGround:checked ~ *.sheet-ship-groundvehicle.sheet-isGround,
.sheet-HideWalker:checked ~ *.sheet-ship-walker.sheet-isWalker,*/

.sheet-HideGear:checked ~ *.sheet-gear,
.sheet-HideSpellsd:checked ~ *.sheet-spellsd,
.sheet-HideSpellsn:checked ~ *.sheet-spellsn,
.sheet-HideAtts:checked ~ *.sheet-atts,
.sheet-HideSkills:checked ~ *.sheet-mskills,
.sheet-HideMWeapons:checked ~ *.sheet-mweapons,
.sheet-HideRWeapons:checked ~ *.sheet-rweapons,
.sheet-HideArcanum:checked ~ *.sheet-arcanum,
.sheet-hideArcanum:checked ~ *.sheet-section-arcanum,
.sheet-NoPP:checked + *.sheet-PowerPoints,
.sheet-HideNotes:checked ~ *.sheet-notes,
.sheet-HideConfig:checked ~ *.sheet-config,
.sheet-HideWCSkills:checked ~ *.sheet-wcSkills,
.sheet-HideWCSkills2:checked ~ *.sheet-wcSkills2,
.sheet-HidemSkills:checked ~ *.sheet-mSkills,
.sheet-HidemSkills:checked ~ *.sheet-mSkills2,
.sheet-HideUITweaks:checked ~ *.sheet-UITweaks,
.sheet-HideGameSettings:checked ~ *.sheet-GameSettings,
.sheet-HideReplacements:checked ~ *.sheet-fields,
.sheet-HideNewFields:checked ~ *.sheet-newfields,
.sheet-use9212:not(:checked) ~ .sheet-augEnd,
.sheet-use9212:not(:checked) ~ .sheet-aEnd,
.sheet-use9212:checked ~ .sheet-use528:checked,
.sheet-use528:not(:checked) ~ .sheet-hide528,
.sheet-h528:checked ~ .sheet-use528,
.sheet-h528:checked ~ span.sheet-528,
.sheet-h9212:checked ~ .sheet-use9212,
.sheet-h9212:checked ~ span.sheet-9212,
.sheet-h9212:checked ~ .sheet-hide528:checked,
.sheet-h9212:checked ~ span.sheet-h528,
.sheet-use528:not(:checked) ~ .sheet-use9212,
.sheet-use528:not(:checked) ~ span.sheet-9212,

.sheet-HideSShipEdges:checked ~ .sheet-SShipEdges,
.sheet-HideSShipWeapons:checked ~ .sheet-SShipWeapons,
.sheet-HideSShipCrew:checked ~ .sheet-SShipCrew,

.sheet-HideFShipEdges:checked ~ .sheet-FShipEdges,
.sheet-HideFShipWeapons:checked ~ .sheet-FShipWeapons,
.sheet-HideFShipCrew:checked ~ .sheet-FShipCrew,

.sheet-HideGroundEdges:checked ~ .sheet-GroundEdges,
.sheet-HideGVWeapons:checked ~ .sheet-GVWeapons,
.sheet-HideGVCrew:checked ~ .sheet-GVCrew,

.sheet-HideWalkerEdges:checked ~ .sheet-WalkerEdges,
.sheet-HideWalkerWeapons:checked ~ .sheet-WalkerWeapons,
.sheet-HideWalkerCrew:checked ~ .sheet-WalkerCrew,

.sheet-Hide {
	display:none;
}

/*Showing*/

.sheet-hindrance,
.sheet-edge,
.sheet-armor,
.sheet-melee,
.sheet-ranged,
.sheet-gear,
.sheet-spellsd,
.sheet-spellsn,
.sheet-atts,
.sheet-mskills,
.sheet-mweapons,
.sheet-rweapons,
.sheet-arcanum,
.sheet-notes,
.sheet-useMaxLoad:checked ~ .sheet-nameRankXp.sheet-loadlimit,
.sheet-useMaxLoad:checked ~ .sheet-modifier.sheet-loadlimit,
.sheet-useSkillSpec:checked + *.sheet-SkillSpec,
.sheet-StaticSkill:checked + *.sheet-staticBoating,
.sheet-StaticSkill:checked + *.sheet-staticClimbing,
.sheet-StaticSkill:checked + *.sheet-staticDriving,
.sheet-StaticSkill:checked + *.sheet-staticFaith,
.sheet-StaticSkill:checked + *.sheet-staticGambling,
.sheet-StaticSkill:checked + *.sheet-staticGuts,
.sheet-StaticSkill:checked + *.sheet-staticHealing,
.sheet-StaticSkill:checked + *.sheet-staticIntimidation,
.sheet-StaticSkill:checked + *.sheet-staticInvestigation,
.sheet-StaticSkill:checked + *.sheet-staticLockpicking,
.sheet-StaticSkill:checked + *.sheet-staticNotice,
.sheet-StaticSkill:checked + *.sheet-staticPersuasion,
.sheet-StaticSkill:checked + *.sheet-staticPiloting,
.sheet-StaticSkill:checked + *.sheet-staticPsionics,
.sheet-StaticSkill:checked + *.sheet-staticRepair,
.sheet-StaticSkill:checked + *.sheet-staticRiding,
.sheet-StaticSkill:checked + *.sheet-staticShooting,
.sheet-StaticSkill:checked + *.sheet-staticShooting,
.sheet-StaticSkill:checked + *.sheet-staticSpellcasting,
.sheet-StaticSkill:checked + *.sheet-staticStealth,
.sheet-StaticSkill:checked + *.sheet-staticStreetwise,
.sheet-StaticSkill:checked + *.sheet-staticSurvival,
.sheet-StaticSkill:checked + *.sheet-staticSwimming,
.sheet-StaticSkill:checked + *.sheet-staticTaunt,
.sheet-StaticSkill:checked + *.sheet-staticThrowing,
.sheet-StaticSkill:checked + *.sheet-staticTracking,
.sheet-StaticSkill:checked + *.sheet-staticRitual,
.sheet-StaticSkill:checked + *.sheet-staticWeirdScience,
.sheet-useFencingStyle:checked + *.sheet-FencingStyle,
.sheet-useFame:checked + *.sheet-Fame,
.sheet-useGlory:checked + *.sheet-Glory,
.sheet-useHomeworld:checked + *.sheet-Homeworld,
.sheet-usearchetype:checked + *.sheet-archetype,
.sheet-useLanguages:checked + *.sheet-Languages,
.sheet-usetap:checked + *.sheet-tap,
.sheet-useAugmentations:checked + *.sheet-Augmentations,
.sheet-useSpecies:checked + *.sheet-Species,
.sheet-useOccupation:checked + *.sheet-Occupation,
.sheet-useShipName:checked + *.sheet-ShipName,
.sheet-useEngrams:checked + *.sheet-engrams,
.sheet-useSanity:checked + *.sheet-Sanity,
.sheet-useCodeName:checked ~ .sheet-civilian,
.sheet-useGrit:checked + *.sheet-Grit,
.sheet-useNT:checked + *.sheet-NT,
.sheet-useWorstNightmare:checked + *.sheet-WorstNightmare,
.sheet-useMotivation:checked + *.sheet-Motivation,
.sheet-useNoS:checked + *.sheet-NoS,
.sheet-useInjuries:checked + *.sheet-Injuries,
.sheet-useFirewall:checked + *.sheet-Firewall,
.sheet-useStrain:checked + *.sheet-Strain,
.sheet-useStreetCred:checked + *.sheet-StreetCred,
.sheet-useCorruption:checked + *.sheet-Corruption,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_meleeweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_rangeweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_dmgspells] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_mmeleeweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_mrangeweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_mdmgspells] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_sailingShip] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_flyingShip] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_sailweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_flyingweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_groundweapons] > .repitem .sheet-useHB,
.sheet-useRaiseHB:checked ~ [data-groupname=repeating_wsweapons] > .repitem .sheet-useHB,
.sheet-NewDieType:checked + *.sheet-dtypedropdown,
.sheet-NewDieType:checked ~ [data-groupname=repeating_skills] > .repitem .sheet-dtypedropdown,
.sheet-WDNewDieType:checked + *.sheet-dtypedropdown,
.sheet-WDNewDieType:checked ~ [data-groupname=repeating_skills] > .repitem .sheet-dtypedropdown,
.sheet-use528:checked ~ *.sheet-aug528,
.sheet-use9212:checked ~ *.sheet-aug9212,
.sheet-showAdvancements:checked + .sheet-advancements,

.sheet-useVehicles:checked ~ *.sheet-vehicleTypes,
.sheet-useVehicles:checked ~ *[class^="sheet-vehicleTypes"],
.sheet-useSailingShips:checked ~ .sheet-ship-sailing,
.sheet-useFlyingShips:checked ~ .sheet-ship-flying,
.sheet-useGroundVehicle:checked ~ .sheet-ship-groundvehicle,
.sheet-useWalker:checked ~ .sheet-ship-walker {
	display:inline-block;
}

/*Modify Content*/

.charsheet span.sheet-is-hindrance-tab::before,
.charsheet span.sheet-is-edge-tab::before,
.charsheet span.sheet-is-armor-tab::before,
.charsheet span.sheet-is-melee-tab::before,
.charsheet span.sheet-is-ranged-tab::before,

.charsheet span.sheet-is-vehicle-tab::before,
.charsheet span.sheet-is-sailing-tab::before,
.charsheet span.sheet-is-flying-tab::before,
.charsheet span.sheet-is-ground-tab::before,
.charsheet span.sheet-is-walker-tab::before,

.charsheet span.sheet-is-gear-tab::before,
.charsheet span.sheet-is-spellsd-tab::before,
.charsheet span.sheet-is-spellsn-tab::before,
.charsheet span.sheet-is-atts-tab::before,
.charsheet span.sheet-is-skills-tab::before,
.charsheet span.sheet-is-mweapons-tab::before,
.charsheet span.sheet-is-rweapons-tab::before,
.charsheet span.sheet-is-arcanum-tab::before,
.charsheet span.sheet-is-notes-tab::before,

.charsheet span.sheet-HideSSEdges::before,
.charsheet span.sheet-HideSSWeapons::before,
.charsheet span.sheet-HideSSCrew::before,

.charsheet span.sheet-HideFSEdges::before,
.charsheet span.sheet-HideFSWeapons::before,
.charsheet span.sheet-HideFSCrew::before,

.charsheet span.sheet-HideGVEdges::before,
.charsheet span.sheet-HideGVWeapons::before,
.charsheet span.sheet-HideGVCrew::before,

.charsheet span.sheet-HideWalkerEdges::before,
.charsheet span.sheet-HideWalkerWeapons::before,
.charsheet span.sheet-HideWalkerCrew::before {
    content: "Hide";
}

.charsheet span.sheet-is-config::after { /*Close Config: grayish background with black text*/
	content: "^";
}

.charsheet span.sheet-is-wcSkills::before {
	content: "Close Wild Card Core Skills";
}

.charsheet span.sheet-is-wcSkills2::before {
	content: "Done";
}

[data-groupname=repeating_skills] > button.btn.repcontrol_add::after {
	content: " Non-core Skills";
}

[data-groupname*="spec"] > button.btn.repcontrol_add::after {
	content: " Specialization";
}

[data-groupname*="fencing"] > button.btn.repcontrol_add::after {
	content: " Fencing Style/School";
}

.charsheet span.sheet-is-mSkills::before {
	content: "Close Mook Core Skills";
}

.charsheet span.sheet-is-mSkills2::before {
	content: "Hide ";
}

.charsheet span.sheet-is-wcUI::before {
	content: "Close UI Tweaks Configuration";
}

.charsheet span.sheet-is-gameSettings::before {
	content: "Close Additional Derived Stats";
}

.charsheet span.sheet-is-fieldreplacements::before {
	content: "Close Field Replacements";
}

.charsheet span.sheet-is-newfields::before {
	content: "Close Additional Setting Fields";
}

.charsheet .sheet-use528:not(:checked) + span.sheet-528::before,
.charsheet .sheet-use9212:not(:checked) + span.sheet-9212::before {
	content: "Add";
}

.charsheet .sheet-use528:checked + span.sheet-528::before,
.charsheet .sheet-hide528:checked + span.sheet-h528::before,
.charsheet .sheet-augEnd:checked + span.sheet-aEnd::before {
	content: "Remove";
}

.charsheet .sheet-HideArmor:checked + span.sheet-is-armor-tab::before,
.charsheet .sheet-HideMelee:checked + span.sheet-is-melee-tab::before,
.charsheet .sheet-HideRanged:checked + span.sheet-is-ranged-tab::before,

.charsheet .sheet-HideVehicles:checked + span.sheet-is-vehicle-tab::before,
.charsheet .sheet-HideSailing:checked + span.sheet-is-sailing-tab::before,
.charsheet .sheet-HideFlying:checked + span.sheet-is-flying-tab::before,
.charsheet .sheet-HideGround:checked + span.sheet-is-ground-tab::before,
.charsheet .sheet-HideWalker:checked + span.sheet-is-walker-tab::before,

.charsheet .sheet-HideGear:checked + span.sheet-is-gear-tab::before,
.charsheet .sheet-HideSpellsd:checked + span.sheet-is-spellsd-tab::before,
.charsheet .sheet-HideSpellsn:checked + span.sheet-is-spellsn-tab::before,
.charsheet .sheet-HideEdges:checked + span.sheet-is-edge-tab::before,
.charsheet .sheet-HideHindrance:checked + span.sheet-is-hindrance-tab::before,

.charsheet .sheet-HideSShipEdges:checked + span.sheet-HideSSEdges::before,
.charsheet .sheet-HideSShipWeapons:checked + span.sheet-HideSSWeapons::before,
.charsheet .sheet-HideSShipCrew:checked + span.sheet-HideSSCrew::before,

.charsheet .sheet-HideFShipEdges:checked + span.sheet-HideFSEdges::before,
.charsheet .sheet-HideFShipWeapons:checked + span.sheet-HideFSWeapons::before,
.charsheet .sheet-HideFShipCrew:checked + span.sheet-HideFSCrew::before,

.charsheet .sheet-HideGroundEdges:checked + span.sheet-HideGVEdges::before,
.charsheet .sheet-HideGVWeapons:checked + span.sheet-HideGVWeapons::before,
.charsheet .sheet-HideGVCrew:checked + span.sheet-HideGVCrew::before,

.charsheet .sheet-HideWalkerEdges:checked + span.sheet-HideWalkerEdges::before,
.charsheet .sheet-HideWalkerWeapons:checked + span.sheet-HideWalkerWeapons::before,
.charsheet .sheet-HideWalkerCrew:checked + span.sheet-HideWalkerCrew::before,

.charsheet .sheet-HideVehicles:checked + span.sheet-is-vehicle-tab::before {
	content: "Show";
}

.charsheet .sheet-HideAtts:checked + span.sheet-is-atts-tab::before {
	content: "Show Attributes & Edges";
}

.charsheet .sheet-HideSkills:checked + span.sheet-is-skills-tab::before {
	content: "Show Skills & Armor";
}

.charsheet .sheet-HideMWeapons:checked + span.sheet-is-mweapons-tab::before {
	content: "Show Melee Weapons & Gear";
}

.charsheet .sheet-HideRWeapons:checked + span.sheet-is-rweapons-tab::before {
	content: "Show Ranged Weapons";
}

.charsheet .sheet-HideArcanum:checked + span.sheet-is-arcanum-tab::before {
	content: "Show Arcanum";
}

.charsheet .sheet-HideNotes:checked + span.sheet-is-notes-tab::before {
	content: "Show Notes";
}

.charsheet .sheet-HideConfig:checked + span.sheet-is-config::after { /*Show Configuration: Black background with grayish text*/
	content: "v";
}

.charsheet .sheet-HideWCSkills:checked + span.sheet-is-wcSkills::before {
	content: "Show Wild Card Core Skills";
}

.charsheet .sheet-HideWCSkills2:checked + span.sheet-is-wcSkills2::before {
	content: "+/- Core Skills";
}

.charsheet .sheet-HidemSkills:checked + span.sheet-is-mSkills::before {
	content: "Show Mook Core Skills";
}

.charsheet .sheet-HidemSkills:checked + span.sheet-is-mSkills2::before {
	content: "Show ";
}

.charsheet .sheet-HideUITweaks:checked + span.sheet-is-wcUI::before {
	content: "Show UI Tweaks Configuration";
}

.charsheet .sheet-HideGameSettings:checked + span.sheet-is-gameSettings::before {
	content: "Show Additional Derived Stats";
}

.charsheet .sheet-HideReplacements:checked + span.sheet-is-fieldreplacements::before {
	content: "Show Field Replacements";
}

.charsheet .sheet-HideNewFields:checked + span.sheet-is-newfields::before {
	content: "Show Additional Setting Fields";
}

/*Modify Display*/
 /*span classes*/
.charsheet span.sheet-is-hindrance-tab,
.charsheet span.sheet-is-edge-tab,
.charsheet span.sheet-is-armor-tab,
.charsheet span.sheet-is-melee-tab,
.charsheet span.sheet-is-ranged-tab,

.charsheet span.sheet-is-vehicle-tab,
.charsheet span.sheet-is-sailing-tab,
.charsheet span.sheet-is-flying-tab,
.charsheet span.sheet-is-ground-tab,
.charsheet span.sheet-is-walker-tab,

.charsheet span.sheet-is-gear-tab,
.charsheet span.sheet-is-spellsd-tab,
.charsheet span.sheet-is-spellsn-tab,
.charsheet span.sheet-is-atts-tab,
.charsheet span.sheet-is-skills-tab,
.charsheet span.sheet-is-mweapons-tab,
.charsheet span.sheet-is-rweapons-tab,
.charsheet span.sheet-is-arcanum-tab,
.charsheet span.sheet-is-notes-tab,
/*.charsheet span.sheet-is-config,*/
.charsheet span.sheet-is-wcSkills,
.charsheet span.sheet-is-mSkills,
.charsheet span.sheet-is-mSkills2,
.charsheet span.sheet-is-wcUI,
.charsheet span.sheet-is-gameSettings,
.charsheet span.sheet-is-fieldreplacements,
.charsheet span.sheet-is-newfields,
.charsheet span.sheet-528,
.charsheet span.sheet-9212,
.charsheet span.sheet-aEnd,
.charsheet span.sheet-h528,

.charsheet span.sheet-HideSSEdges,
.charsheet span.sheet-HideSSWeapons,
.charsheet span.sheet-HideSSCrew,

.charsheet span.sheet-HideFSEdges,
.charsheet span.sheet-HideFSWeapons,
.charsheet span.sheet-HideFSCrew,

.charsheet span.sheet-HideGVEdges,
.charsheet span.sheet-HideGVWeapons,
.charsheet span.sheet-HideGVCrew,

.charsheet span.sheet-HideWalkerEdges,
.charsheet span.sheet-HideWalkerWeapons,
.charsheet span.sheet-HideWalkerCrew {
    text-align: center;
    display: inline-block;
    width: 20%;
    height: 16px;
    font-size: 9px;
    /*background: #65763c;*/
    background: #c7c3b0; /*#93537c;*/
	color: black; /*white;*/
	font-weight: bold;
	border-radius: 4px;
	margin-left: -20%;
}

.charsheet span.sheet-is-config {
	text-align: center;
    display: inline-block;
    width: 5%;
    height: 16px;
    font-size: 9px;
    /*font-family: "Pictos";*/
    /*background: #65763c;*/
    background: black; /*#93537c;*/
	color: white; /*white;*/
	font-weight: bold;
	border-radius: 4px;
	margin-left: -5%;
}

.charsheet td.sheet-tapreadout {
	text-align: center;
	font-size: .9em;
	background-color: #919191;
	color: white;
}

/*The Classes for the Input Field*/
.charsheet input.sheet-HideHindrance,
.charsheet input.sheet-HideEdges,
.charsheet input.sheet-HideArmor,
.charsheet input.sheet-HideMelee,
.charsheet input.sheet-HideRanged,

.charsheet input.sheet-HideVehicles,
.charsheet input.sheet-HideSailing,
.charsheet input.sheet-HideFlying,
.charsheet input.sheet-HideGround,
.charsheet input.sheet-HideWalker,

.charsheet input.sheet-HideGear,
.charsheet input.sheet-HideSpellsd,
.charsheet input.sheet-HideSpellsn,
.charsheet input.sheet-HideAtts,
.charsheet input.sheet-HideSkills,
.charsheet input.sheet-HideMWeapons,
.charsheet input.sheet-HideRWeapons,
.charsheet input.sheet-HideArcanum,
.charsheet input.sheet-HideNotes,
/*.charsheet input.sheet-HideConfig,*/
.charsheet input.sheet-HideWCSkills,
.charsheet input.sheet-HidemSkills,
.charsheet input.sheet-HideUITweaks,
.charsheet input.sheet-HideGameSettings,
.charsheet input.sheet-HideReplacements,
.charsheet input.sheet-HideNewFields,
.charsheet input.sheet-use528,
.charsheet input.sheet-use9212,
.charsheet input.sheet-augEnd,
.charsheet input.sheet-hide528,

.charsheet input.sheet-HideSShipEdges,
.charsheet input.sheet-HideSShipWeapons,
.charsheet input.sheet-HideSShipCrew,

.charsheet input.sheet-HideFShipEdges,
.charsheet input.sheet-HideFShipWeapons,
.charsheet input.sheet-HideFShipCrew,

.charsheet input.sheet-HideGroundEdges,
.charsheet input.sheet-HideGVWeapons,
.charsheet input.sheet-HideGVCrew,

.charsheet input.sheet-HideWalkerEdges,
.charsheet input.sheet-HideWalkerWeapons,
.charsheet input.sheet-HideWalkerCrew {
    /*width: 20%;*/
    width: 158px;
    height: 16px;
    cursor: pointer;
    margin-left: auto;
    margin-top: auto;
	/*position: absolute;
	right: 20%;*/
	opacity: 0;
	z-index: 9999;
}

.charsheet input.sheet-HideConfig {
	 width: 5%;
    height: 16px;
    cursor: pointer;
    margin-left: auto;
    margin-top: auto;
	/*position: absolute;
	right: 20%;*/
	opacity: 0;
	z-index: 9999;
}

/*.charsheet span.sheet-is-config,*/
.charsheet span.sheet-is-wcSkills,
.charsheet span.sheet-is-mSkills,
.charsheet span.sheet-is-mSkills2,
.charsheet span.sheet-is-wcUI,
.charsheet span.sheet-is-gameSettings,
.charsheet span.sheet-is-fieldreplacements,
.charsheet span.sheet-is-newfields,
.charsheet .sheet-use528:checked + span.sheet-528,
.charsheet .sheet-use9212:checked + span.sheet-9212,
.charsheet .sheet-augEnd:checked + span.sheet-aEnd,
.charsheet .sheet-hide528:checked + span.sheet-528 { /*Close Config: grayish background with black text*/
	background-color: #c7c3b0;
	color: black;
}

.charsheet .sheet-HideHindrance:checked + span.sheet-is-hindrance-tab,
.charsheet .sheet-HideEdges:checked + span.sheet-is-edge-tab,
.charsheet .sheet-HideArmor:checked + span.sheet-is-armor-tab,
.charsheet .sheet-HideMelee:checked + span.sheet-is-melee-tab,
.charsheet .sheet-HideRanged:checked + span.sheet-is-ranged-tab,

.charsheet .sheet-HideVehicles:checked + span.sheet-is-vehicle-tab,
.charsheet .sheet-HideSailing:checked + span.sheet-is-sailing-tab,
.charsheet .sheet-HideFlying:checked + span.sheet-is-flying-tab,
.charsheet .sheet-HideGround:checked + span.sheet-is-ground-tab,
.charsheet .sheet-HideWalker:checked + span.sheet-is-walker-tab,

.charsheet .sheet-HideGear:checked + span.sheet-is-gear-tab,
.charsheet .sheet-HideSpellsd:checked + span.sheet-is-spellsd-tab,
.charsheet .sheet-HideSpellsn:checked + span.sheet-is-spellsn-tab,
.charsheet .sheet-HideAtts:checked + span.sheet-is-atts-tab,
.charsheet .sheet-HideSkills:checked + span.sheet-is-skills-tab,
.charsheet .sheet-HideMWeapons:checked + span.sheet-is-mweapons-tab,
.charsheet .sheet-HideRWeapons:checked + span.sheet-is-rweapons-tab,
.charsheet .sheet-HideArcanum:checked + span.sheet-is-arcanum-tab,
.charsheet .sheet-HideNotes:checked + span.sheet-is-notes-tab,
.charsheet .sheet-use528:not(:checked) + span.sheet-528,
.charsheet .sheet-use9212:not(:checked) + span.sheet-9212,
.charsheet .sheet-augEnd:not(:checked) + span.sheet-aEnd,

.charsheet .sheet-HideSShipEdges:checked + span.sheet-HideSSEdges,
.charsheet .sheet-HideSShipWeapons:checked + span.sheet-HideSSWeapons,
.charsheet .sheet-HideSShipCrew:checked + span.sheet-HideSSCrew,

.charsheet .sheet-HideFShipEdges:checked + span.sheet-HideFSEdges,
.charsheet .sheet-HideFShipWeapons:checked + span.sheet-HideFSWeapons,
.charsheet .sheet-HideFShipCrew:checked + span.sheet-HideFSCrew,

.charsheet .sheet-HideGroundEdges:checked + span.sheet-HideGVEdges,
.charsheet .sheet-HideGVWeapons:checked + span.sheet-HideGVWeapons,
.charsheet .sheet-HideGVCew:checked + span.sheet-HideGVCrew,

/*.charsheet .sheet-Walker:checked + span.sheet-HideWalkerEdges,*/
.charsheet .sheet-HideWalkerEdges:checked + span.sheet-HideWalkerEdges,
.charsheet .sheet-HideWalkerWeapons:checked + span.sheet-HideWalkerWeapons,
.charsheet .sheet-HideWalkerCrew:checked + span.sheet-HideWalkerCrew { /*Green Background with White Text*/
	background: black; /*#65763c;*/
    color: #c7c3b0; /*white;*/
	border-radius: 4px;
}

.charsheet input.sheet-HideWCSkills2/*,
.charsheet input.sheet-use528,
.charsheet input.sheet-use9212,
.charsheet input.sheet-h528,
.charsheet input.sheet-h9212,
.charsheet input.sheet-augEnd,
.charsheet input.sheet-hide528*/ {
    /*width: 20%;*/
    /*width: 158px;*/
    /*height: 16px;*/
    width: 90px;
    height:2.2em;
    cursor: pointer;
    margin-left: auto;
    margin-top: auto;
	/*position: absolute;
	right: 20%;*/
	opacity: 0;
	z-index: 9999;
}

.charsheet .repcontrol_add,
.charsheet .repcontrol_edit,
.charsheet .repcontrol_del {
	display: block;
    background: #000;
    color: white;
    /*text-shadow:0px 0px 2px #000,0px 0px 2px #000,0px 0px 2px #000;*/
    box-shadow:none;
    /*float:left!important;*/
    /*margin-bottom:0px;*/
    font-size:0.9em;
    height:2.2em;
}

.charsheet span.sheet-is-wcSkills2/*,
.charsheet span.sheet-528,
.charsheet span.sheet-h528,
.charsheet span.sheet-9212,
.charsheet span.sheet-aEnd*/ { /*Close Config: grayish background with black text*/
	/*background-color: #c7c3b0;
	color: black;*/
	/*display: block;*/
	/*text-shadow:0px 0px 2px #000,0px 0px 2px #000,0px 0px 2px #000;*/
    /*box-shadow:none;*/
    /*float:left!important;*/
    /*margin-bottom:0px;*/
    background: #000;
	border-radius: 4px;
	color: white;
    font-size: 0.9em;
    height: 2.2em;
    /*width: 158px;
	margin-left: -158px;*/
	width: 90px;
	margin-left: -90px;
	border-radius: 4px;
	display: inline-block;
	vertical-align: middle;
	text-align: center;
	line-height: 2.2em;
}

.charsheet .sheet-HideWCSkills2:checked + span.sheet-is-wcSkills2/*,
.charsheet .sheet-use528:checked + span.sheet-528,
.charsheet .sheet-use9212:checked + span.sheet-9212,
.charsheet .sheet-h528:checked + span.sheet-h528,
.charsheet .sheet-h9212:checked + span.sheet-h9212,
.charsheet .sheet-augEnd:checked + span.sheet-aEnd*/ {
	background: #000;
	border-radius: 4px;
	color: white;
	font-size: 0.9em;
    height:2.2em;
    /*width: 158px;
	margin-left: -158px;*/
	width: 90px;
	margin-left: -90px;
	display: inline-block;
	vertical-align: middle;
	text-align: center;
	line-height: 2.2em;
}

.charsheet .sheet-HideConfig:checked + span.sheet-is-config,
.charsheet .sheet-HideWCSkills:checked + span.sheet-is-wcSkills,
.charsheet .sheet-HidemSkills:checked + span.sheet-is-mSkills,
.charsheet .sheet-HidemSkills:checked + span.sheet-is-mSkills2,
.charsheet .sheet-HideUITweaks:checked + span.sheet-is-wcUI,
.charsheet .sheet-HideGameSettings:checked + span.sheet-is-gameSettings,
.charsheet .sheet-HideReplacements:checked + span.sheet-is-fieldreplacements,
.charsheet .sheet-HideNewFields:checked + span.sheet-is-newfields { /*Show Configuration Button: Black background with grayish text*/
	background: black;
	border-radius: 4px;
	color: white;
}

/*----------- End Hiding/Unhiding Things -----------*/
/*----------- Roll Template ------------------------*/

/* New Roll Template */

.sheet-rolltemplate-spadestrait2 h2.sheet-caption {
	width: 90%;
	max-width: 200px;
	text-align: center;
	/*color: #755b27;
    background-color: #dbc792;*/
    color: white;
    background-color: black;
	border-radius: 15px;
	font-family: "cinzelregular";
	font-size: 1.125em;
	font-weight: bold;
	margin: 5px;
}

.sheet-rolltemplate-spadestrait2 div.sheet-rtcard,
.sheet-rolltemplate-combined div.sheet-AceSpades {
	width: 90%;
	max-width: 200px;
	min-height: 250px;
	/*height: 250px;*/
	background: url(http://www.geeksville.us/roll20/Ace_of_Spades5.jpg) top left;
    /*background-size: 200px 250px;*/
    /*background-size: cover;*/
    background-size: 100% 100%;
    background-repeat: no-repeat;
    padding: 5px;
    border-radius: 15px;
    border: solid 1px black;
}

.sheet-rolltemplate-spadestrait2 .sheet-skinnytemplate:checked + div.sheet-rtcard {
	width: 350px;
}

.sheet-rolltemplate-spadestrait2 table,
.sheet-rolltemplate-clubsdamage table,
.sheet-rolltemplate-combined table {
	width: 95%;
	/*height: 250px;*/
	/*padding: 2px;*/
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	border-spacing: 0;
	/*position: relative;
	top: 10%;*/
}

.sheet-rolltemplate-spadestrait2 caption,
.sheet-rolltemplate-clubsdamage caption {
	font-size: 1.5em;
	margin: 5px;
}

.sheet-rolltemplate-spadestrait2 th,
.sheet-rolltemplate-clubsdamage th {
	height: 1.0em;
	font-size: 1.0em;
	/*border: solid 1px;*/
	border-collapse: collapse;
	margin: 5px;
}

.sheet-rolltemplate-spadestrait2 td,
.sheet-rolltemplate-solidtrait td,
.sheet-rolltemplate-clubsdamage td,
.sheet-rolltemplate-soliddamage td,
.sheet-rolltemplate-combined td {
	width: 75%;
	height: .75em;
	vertical-align: top;
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	font-size: 0.875em;
	/*border-collapse: collapse;*/
	border-bottom: solid 1px;
}

.sheet-rolltemplate-spadestrait2 td.sheet-roll,
.sheet-rolltemplate-spadestrait2 td.sheet-rollresults,
.sheet-rolltemplate-solidtrait td.sheet-roll,
.sheet-rolltemplate-solidtrait td.sheet-rollresults,
.sheet-rolltemplate-clubsdamage td.sheet-roll,
.sheet-rolltemplate-clubsdamage td.sheet-rollresults,
.sheet-rolltemplate-soliddamage td.sheet-roll,
.sheet-rolltemplate-soliddamage td.sheet-rollresults,
.sheet-rolltemplate-combined td.sheet-roll,
.sheet-rolltemplate-combined td.sheet-rollresults {
	width: 25%;
	text-align: right;
}

.sheet-rolltemplate-spadestrait2 td.sheet-rresults,
.sheet-rolltemplate-spadestrait2 td.sheet-rollresults,
.sheet-rolltemplate-solidtrait td.sheet-rresults,
.sheet-rolltemplate-solidtrait td.sheet-rollresults,
.sheet-rolltemplate-clubsdamage td.sheet-rresults,
.sheet-rolltemplate-clubsdamage td.sheet-rollresults,
.sheet-rolltemplate-soliddamage td.sheet-rresults,
.sheet-rolltemplate-soliddamage td.sheet-rollresults,
.sheet-rolltemplate-combined td.sheet-rresults,
.sheet-rolltemplate-combined td.sheet-rollresults {
	font-size: 0.95em;
	height: 0.95em;
}

.sheet-rolltemplate-spadestrait2 td.sheet-fakeroll,
.sheet-rolltemplate-solidtrait td.sheet-fakeroll {
	text-align: right;
}

.sheet-rolltemplate-spadestrait2 .sheet-rtcard .sheet-fakeroll .inlinerollresult{
	/*padding-right: 0px;*/
	text-align: right;
	color: #4d4d4d;
	font-weight: normal;
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	font-size: 13px;
	margin-right: -3px;
}

.sheet-rolltemplate-spadestrait2 .inlinerollresult,
.sheet-rolltemplate-solidtrait .inlinerollresult,
.sheet-rolltemplate-clubsdamage .inlinerollresult,
.sheet-rolltemplate-soliddamage .inlinerollresult,
.sheet-rolltemplate-combined .inlinerollresult {
    background-color: transparent;
    color: #000000;
    border: none;
}

.sheet-rolltemplate-spadestrait2 .inlinerollresult.fullcrit,
.sheet-rolltemplate-solidtrait .inlinerollresult.fullcrit,
.sheet-rolltemplate-clubsdamage .inlinerollresult.fullcrit,
.sheet-rolltemplate-soliddamage .inlinerollresult.fullcrit,
.sheet-rolltemplate-combined .inlinerollresult.fullcrit {
	color: #3FB315;
    border: none;
}

.sheet-rolltemplate-spadestrait2 .inlinerollresult.fullfail,
.sheet-rolltemplate-solidtrait .inlinerollresult.fullfail,
.sheet-rolltemplate-clubsdamage .inlinerollresult.fullfail,
.sheet-rolltemplate-soliddamage .inlinerollresult.fullfail,
.sheet-rolltemplate-combined .inlinerollresult.fullfail {
    color: maroon;
    border: none;
}

.sheet-rolltemplate-spadestrait2 .inlinerollresult.importantroll,
.sheet-rolltemplate-solidtrait .inlinerollresult.importantroll,
.sheet-rolltemplate-clubsdamage .inlinerollresult.importantroll,
.sheet-rolltemplate-soliddamage .inlinerollresult.importantroll,
.sheet-rolltemplate-combined .inlinerollresult.importantroll {
	color: #3FB315;
    border: none;
}

/* Version 2 Roll Template */

.sheet-rolltemplate-solidtrait h2.sheet-caption {
	/*width: 95%;*/
	text-align: center;
	/*color: #dbc792;
    background-color: #755b27;*/
	color: white;
    background-color: black;
	border-radius: 15px;
	font-family: "cinzelregular";
	font-size: 1.125em;
	font-weight: bold;
	margin: 5px;
}

.sheet-rolltemplate-solidtrait div.sheet-rtcard,
.sheet-rolltemplate-combined div.sheet-noBG {
	background-color: white;
	border: solid 1px black;
	border-radius: 15px;
    padding: 15px;
}

.sheet-rolltemplate-solidtrait table {
	width: 90%;
	margin-left: 5%;
	margin-right: 5%;
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	border-spacing: 0;
}

.sheet-rolltemplate-solidtrait caption {
	font-size: 1.5em;
	margin-top: 5px;
	margin-bottom: 15px;
	/*border: solid 1px #755b27;
	background-color: #755b27;
	color: #dbc792;*/
	border: solid 1px black;
	background-color: black;
	color: white;
	border-radius: 15px;
	padding: 10px;
}

.sheet-rolltemplate-solidtrait th {
	height: 1.0em;
	font-size: 1.0em;
	background-color: #c7c3b0;
	color: black;
	border-collapse: collapse;
	margin: 10px;
	padding: 5px;
	border: solid 1px black;
}

.sheet-rolltemplate-solidtrait td {
	text-align: left;
}

/* Damage Roll Template */

.sheet-rolltemplate-clubsdamage h2.sheet-caption {
	width: 90%;
	max-width: 200px;
	/*width: 200px;*/
	text-align: center;
	color: white;
    background-color: #680000;
	border-radius: 15px;
	font-family: "cinzelregular";
	font-size: 1.125em;
	font-weight: bold;
	margin: 5px;
}

.sheet-rolltemplate-clubsdamage div.sheet-rtcard,
.sheet-rolltemplate-combined div.sheet-AceClubs {
	/*width: 200px;*/
	width: 90%;
	max-width: 200px;
	min-height: 250px;
	background: url('http://www.geeksville.us/roll20/Ace_of_Clubs-Red-light.jpg') top left;
	/*background-size: cover;*/
	background-size: 100% 100%;
	background-repeat: no-repeat;
    padding: 5px;
    border-radius: 15px;
    border: solid 1px #680000;
}

/* Damage Roll Solid Template */

.sheet-rolltemplate-soliddamage h2.sheet-caption {
	/*width: 95%;*/
	text-align: center;
	/*color: #dbc792;
    background-color: #755b27;*/
	color: white;
    background-color: #680000;
	border-radius: 15px;
	font-family: "cinzelregular";
	font-size: 1.125em;
	font-weight: bold;
	margin: 5px;
}

.sheet-rolltemplate-soliddamage div.sheet-rtcard {
	background-color: white;
	border: solid 1px #680000;
	border-radius: 15px;
    padding: 15px;
}

.sheet-rolltemplate-soliddamage table {
	width: 90%;
	margin-left: 5%;
	margin-right: 5%;
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	border-spacing: 0;
}

.sheet-rolltemplate-soliddamage caption {
	font-size: 1.5em;
	margin-top: 5px;
	margin-bottom: 15px;
	/*border: solid 1px #755b27;
	background-color: #755b27;
	color: #dbc792;*/
	border: solid 1px #680000;
	background-color: #680000;
	color: white;
	border-radius: 15px;
	padding: 10px;
}

.sheet-rolltemplate-solidtrait th {
	height: 1.0em;
	font-size: 1.0em;
	background-color: #c7c3b0;
	color: black;
	border-collapse: collapse;
	margin: 10px;
	padding: 5px;
	border: solid 1px black;
}

.sheet-rolltemplate-solidtrait td {
	text-align: left;
}

/* Combined Template */
.sheet-rolltemplate-combined h2.sheet-caption {
	text-align: center;
	color: white;
    background-color: #4C0000;
	border-radius: 15px;
	font-family: "cinzelregular";
	font-size: 1.125em;
	font-weight: bold;
	margin: 5px;
}

.sheet-rolltemplate-combined caption {
	font-size: 1.5em;
	margin: 5px;
	/*border: solid 1px #4C0000;*/
	/*background-color: #4C0000;*/
	color: #4C0000;
	border-radius: 15px;
	padding: 10px;
}

.sheet-rolltemplate-combined th {
	height: 1.0em;
	font-size: 1.0em;
	/*border: solid 1px;*/
	border-collapse: collapse;
	margin: 5px;
}

.sheet-rolltemplate-combined td.sheet-fakeroll .inlinerollresult{
	color: #4d4d4d;
	font-weight: normal;
	font-family: "Trebuchet MS", Helvetica, sans-serif;
	font-size: 13px;
	margin-left: -3px;
}

/*----------- End Roll Template --------------------*/


text:
cask "captain" do
  version "9.0.0"
  sha256 :no_check

  url "https://getcaptain.co/downloads/Captain.dmg"
  name "Captain"
  desc "Manage Docker containers from the menu bar"
  homepage "https://getcaptain.co/"

  livecheck do
    url :homepage
    regex(/Download\sCaptain\sv?(\d+(?:\.\d+)+)[\s<]/i)
  end

  app "Captain.app"

  zap trash: [
    "~/Library/Application Support/captain",
    "~/Library/Preferences/com.electron.captain.helper.plist",
    "~/Library/Preferences/com.electron.captain.plist",
    "~/Library/Saved Application State/com.electron.captain.savedState",
  ]
end

redpajama_set_name: RedPajamaGithub


text:
namespace anyrpc
{

void MessagePackReader::ParseStream(Handler& handler)
{
    log_time(INFO);

    // setup for stream parsing
    handler_ = &handler;
    parseError_.Clear();
    ResetToken();

    handler.StartDocument();

    // Actually parse the stream.  This function may be called recursively.
    try
    {
        ParseStream();
    }
    catch (AnyRpcException &fault)
    {
        log_error("catch exception, stream offset=" << is_.Tell());
        fault.SetOffset( is_.Tell() );
        SetParseError(fault);
    }

    handler.EndDocument();
}

#define ParsePFI4   &MessagePackReader::ParsePositiveFixInt, &MessagePackReader::ParsePositiveFixInt, &MessagePackReader::ParsePositiveFixInt, &MessagePackReader::ParsePositiveFixInt
#define ParsePFI16  ParsePFI4, ParsePFI4, ParsePFI4, ParsePFI4
#define ParseFM4    &MessagePackReader::ParseFixMap,         &MessagePackReader::ParseFixMap,         &MessagePackReader::ParseFixMap,         &MessagePackReader::ParseFixMap
#define ParseFA4    &MessagePackReader::ParseFixArray,       &MessagePackReader::ParseFixArray,       &MessagePackReader::ParseFixArray,       &MessagePackReader::ParseFixArray
#define ParseFS4    &MessagePackReader::ParseFixStr,         &MessagePackReader::ParseFixStr,         &MessagePackReader::ParseFixStr,         &MessagePackReader::ParseFixStr
#define ParseNFI4   &MessagePackReader::ParseNegativeFixInt, &MessagePackReader::ParseNegativeFixInt, &MessagePackReader::ParseNegativeFixInt ,&MessagePackReader::ParseNegativeFixInt

MessagePackReader::Function MessagePackReader::ParseLookup[256] = {
        ParsePFI16, ParsePFI16, ParsePFI16, ParsePFI16,         // 0x00 - 0x3f
        ParsePFI16, ParsePFI16, ParsePFI16, ParsePFI16,         // 0x40 - 0x9f
        ParseFM4, ParseFM4, ParseFM4, ParseFM4,                 // 0x80 - 0x8f
        ParseFA4, ParseFA4, ParseFA4, ParseFA4,                 // 0x90 - 0x9f
        ParseFS4, ParseFS4, ParseFS4, ParseFS4,                 // 0xa0 - 0xaf
        ParseFS4, ParseFS4, ParseFS4, ParseFS4,                 // 0xb0 - 0xbf
        &MessagePackReader::ParseNull,                          // 0xc0
        &MessagePackReader::ParseIllegal,                       // 0xc1
        &MessagePackReader::ParseFalse,                         // 0xc2
        &MessagePackReader::ParseTrue,                          // 0xc3
        &MessagePackReader::ParseBin8,                          // 0xc4
        &MessagePackReader::ParseBin16,                         // 0xc5
        &MessagePackReader::ParseBin32,                         // 0xc6
        &MessagePackReader::ParseExt8,                          // 0xc7
        &MessagePackReader::ParseExt16,                         // 0xc8
        &MessagePackReader::ParseExt32,                         // 0xc9
        &MessagePackReader::ParseFloat32,                       // 0xca
        &MessagePackReader::ParseFloat64,                       // 0xcb
        &MessagePackReader::ParseUint8,                         // 0xcc
        &MessagePackReader::ParseUint16,                        // 0xcd
        &MessagePackReader::ParseUint32,                        // 0xce
        &MessagePackReader::ParseUint64,                        // 0xcf
        &MessagePackReader::ParseInt8,                          // 0xd0
        &MessagePackReader::ParseInt16,                         // 0xd1
        &MessagePackReader::ParseInt32,                         // 0xd2
        &MessagePackReader::ParseInt64,                         // 0xd3
        &MessagePackReader::ParseFixExt1,                       // 0xd4
        &MessagePackReader::ParseFixExt2,                       // 0xd5
        &MessagePackReader::ParseFixExt4,                       // 0xd6
        &MessagePackReader::ParseFixExt8,                       // 0xd7
        &MessagePackReader::ParseFixExt16,                      // 0xd8
        &MessagePackReader::ParseStr8,                          // 0xd9
        &MessagePackReader::ParseStr16,                         // 0xda
        &MessagePackReader::ParseStr32,                         // 0xdb
        &MessagePackReader::ParseArray16,                       // 0xdc
        &MessagePackReader::ParseArray32,                       // 0xdd
        &MessagePackReader::ParseMap16,                         // 0xde
        &MessagePackReader::ParseMap32,                         // 0xdf
        ParseNFI4, ParseNFI4, ParseNFI4, ParseNFI4,             // 0xe0 - 0xef
        ParseNFI4, ParseNFI4, ParseNFI4, ParseNFI4              // 0xf0 - 0xff
};

void MessagePackReader::ParseStream()
{
    log_trace();
    if ((token_ == 0) && is_.Eof())
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    else
    {
        GetToken();
        log_debug("token=" << (int)token_);

        // look up the proper function based on the token and call
        (this->*ParseLookup[token_])();
    }
}

void MessagePackReader::ParseKey()
{
    log_trace();
    if (is_.Eof())
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");

    GetToken();
    int length = -1;

    // only allow string keys although the MessagePack spec allows other types
    if ((token_ >= MessagePackFixStr) && (token_ < MessagePackNil))
        length = token_ & 0x1f;
    else if (token_ == MessagePackStr8)
    {
        if (is_.Eof())
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        length = (unsigned char)is_.Get();
    }
    else
        anyrpc_throw(AnyRpcErrorValueInvalid, "Invalid value");

    if (inSitu_)
    {
        // When parsing in place, mark the start position and continue with the decoding
        char* buffer = is_.PutBegin();
        if (length != is_.Skip(length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");

        GetClearToken();  // get the next token and clear the source, i.e. terminate the string
        handler_->Key(buffer,length,copy_);
        is_.PutEnd();
    }
    else if (length > 0)
    {
        // Key strings can only be up to 256 characters
        char str[257];
        if (is_.Read(str,length) != length)
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");

        str[length] = 0;
        handler_->Key(str,length);
        ResetToken();
    }
}
void MessagePackReader::ParseNull()
{
    log_trace();
    handler_->Null();
    ResetToken();
}

void MessagePackReader::ParseFalse()
{
    log_trace();
    handler_->BoolFalse();
    ResetToken();
}

void MessagePackReader::ParseTrue()
{
    log_trace();
    handler_->BoolTrue();
    ResetToken();
}

void MessagePackReader::ParsePositiveFixInt()
{
    log_trace();
    handler_->Uint( static_cast<unsigned>(token_) );
    ResetToken();
}

void MessagePackReader::ParseNegativeFixInt()
{
    log_trace();
    handler_->Int( static_cast<signed char>(token_) );
    ResetToken();
}

void MessagePackReader::ParseUint8()
{
    log_trace();
    unsigned char Value;
    if (is_.Eof())
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    Value = is_.Get();
    handler_->Uint( Value );
    ResetToken();
}

void MessagePackReader::ParseUint16()
{
    log_trace();
    unsigned short value;
    if (is_.Read( reinterpret_cast<char*>(&value), 2 ) != 2)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    value = _msgpack_be16( value );
    handler_->Uint( static_cast<unsigned short>( value ) );
    ResetToken();
}

void MessagePackReader::ParseUint32()
{
    log_trace();
    unsigned value;
    if (is_.Read( reinterpret_cast<char*>(&value), 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    value = _msgpack_be32( value );
    handler_->Uint( value );
    ResetToken();
}

void MessagePackReader::ParseUint64()
{
    log_trace();
    uint64_t value;
    if (is_.Read( reinterpret_cast<char*>(&value), 8 ) != 8)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    value = _msgpack_be64( value );
    handler_->Uint64( value );
    ResetToken();
}

void MessagePackReader::ParseInt8()
{
    log_trace();
    if (is_.Eof())
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    handler_->Int( static_cast<signed char>(is_.Get()) );
    ResetToken();
}

void MessagePackReader::ParseInt16()
{
    log_trace();
    short value;
    if (is_.Read( reinterpret_cast<char*>(&value), 2 ) != 2)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    value = _msgpack_be16( value );
    handler_->Int( static_cast<short>( value ) );
    ResetToken();
}

void MessagePackReader::ParseInt32()
{
    log_trace();
    int value;
    if (is_.Read( reinterpret_cast<char*>(&value), 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    value = _msgpack_be32( value );
    handler_->Int( value );
    ResetToken();
}

void MessagePackReader::ParseInt64()
{
    log_trace();
    int64_t value;
    if (is_.Read( reinterpret_cast<char*>(&value), 8 ) != 8)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    value = _msgpack_be64( value );
    handler_->Int64( value );
    ResetToken();
}

void  MessagePackReader::ParseFloat32()
{
    log_trace();
    union {
        float f;
        int i;
        char str[4];
    } value;

    if (is_.Read( value.str, 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");

    value.i = _msgpack_be32(value.i);
    handler_->Float( value.f );
    ResetToken();
}

void MessagePackReader::ParseFloat64()
{
    log_trace();
    union {
        double d;
        int64_t i64;
        char str[8];
    } value;

    if (is_.Read( value.str, 8 ) != 8)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");

    value.i64 = _msgpack_be64(value.i64);
    handler_->Double( value.d );
    ResetToken();
}

void MessagePackReader::ParseFixStr()
{
    log_trace();
    ParseStr(token_ & 0x1f);
}

void MessagePackReader::ParseStr8()
{
    log_trace();
    ParseStr(is_.Get());
}

void MessagePackReader::ParseStr16()
{
    log_trace();
    unsigned short length;
    if (is_.Read( reinterpret_cast<char*>(&length), 2 ) != 2)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be16( length );
    ParseStr( length );
}

void MessagePackReader::ParseStr32()
{
    log_trace();
    unsigned length;
    if (is_.Read( reinterpret_cast<char*>(&length), 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be32( length );
    ParseStr( length );
}

void MessagePackReader::ParseStr(size_t length)
{
    log_debug("MessagePackReader::ParseStr: length=" << length);
    if (inSitu_)
    {
        // When parsing in place, mark the start position and continue with the decoding
        char* buffer = is_.PutBegin();
        if (length != is_.Skip(length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        // Value expects all non-copied strings to be null terminated.
        // If you are already at the end of file, then you can't add the null terminator
        bool copy = copy_ || is_.Eof();
        GetClearToken();  // get the next token and clear the source, i.e. terminate the string
        handler_->String(buffer,length,copy);
        is_.PutEnd();
    }
    else if (length <= 256)
    {
        // Read short strings (probably the majority) onto the stack
        char buffer[257];
        if (length != is_.Read(buffer, length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        buffer[length] = 0;
        handler_->String(buffer,length);
        ResetToken();
    }
    else
    {
        // Long strings need an allocated buffer
        // It would be more efficient if the ownership of this buffer could be transferred to the handler
        char *buffer = static_cast<char*>(malloc(length+1));
        if (!buffer)
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        if (length != is_.Read(buffer, length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        buffer[length] = 0;
        handler_->String(buffer,length);
        ResetToken();
        free(buffer);
    }
}

void MessagePackReader::ParseBin8()
{
    log_trace();
    if (is_.Eof())
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    ParseBin(is_.Get());
}

void MessagePackReader::ParseBin16()
{
    log_trace();
    unsigned short length;
    if (is_.Read( reinterpret_cast<char*>(&length), 2 ) != 2)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be16( length );
    ParseBin( length );
}

void MessagePackReader::ParseBin32()
{
    log_trace();
    unsigned length;
    if (is_.Read( reinterpret_cast<char*>(&length), 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be32( length );
    ParseBin( length );
}

void MessagePackReader::ParseBin(size_t length)
{
    log_debug("MessagePackReader::ParseBin, length=" << length);
    if (inSitu_)
    {
        // When parsing in place, mark the start position and continue with the decoding
        char* buffer = is_.PutBegin();
        if (length != is_.Skip(length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        handler_->Binary((unsigned char*)buffer,length,copy_);  // binary data is not null terminated so it can be referenced
        ResetToken();
        is_.PutEnd();
    }
    else if (length <= 256)
    {
        // Read short binary data onto the stack
        char buffer[256];
        if (length != is_.Read(buffer, length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        handler_->Binary((unsigned char*)buffer,length);
        ResetToken();
    }
    else
    {
        // Long binary data needs an allocated buffer
        // It would be more efficient if the ownership of this buffer could be transferred to the handler
        char *buffer = static_cast<char*>(malloc(length));
        if (!buffer)
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        if (length != is_.Read(buffer, length))
            anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
        handler_->Binary((unsigned char*)buffer,length);
        ResetToken();
        free(buffer);
    }
}

void MessagePackReader::ParseArray16()
{
    log_trace();
    unsigned short length;
    if (is_.Read( reinterpret_cast<char*>(&length), 2 ) != 2)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be16( length );  // compiling for mingw had problem when this was combined with the next line
    ParseArray(length);
}

void MessagePackReader::ParseArray32()
{
    log_trace();
    unsigned length;
    if (is_.Read( reinterpret_cast<char*>(&length), 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be32( length );
    ParseArray( length );
}

void MessagePackReader::ParseArray(size_t length)
{
    log_debug("MessagePackReader::ParseArray, length=" << length);
    ResetToken();
    handler_->StartArray(length);

    for (size_t i=0; i<length; i++)
    {
        ParseStream();
        if (i != (length-1))
            handler_->ArraySeparator();
    }
    handler_->EndArray(length);
}

void MessagePackReader::ParseMap16()
{
    log_trace();
    unsigned short length;
    if (is_.Read( reinterpret_cast<char*>(&length), 2 ) != 2)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be16( length );  // compiling for mingw had problem when this was combined with the next line
    ParseMap( length );
}

void MessagePackReader::ParseMap32()
{
    log_trace();
    unsigned length;
    if (is_.Read( reinterpret_cast<char*>(&length), 4 ) != 4)
        anyrpc_throw(AnyRpcErrorTermination, "Parsing was terminated");
    length = _msgpack_be32( length );
    ParseMap( length );
}

void MessagePackReader::ParseMap(size_t length)
{
    log_debug("MessagePackReader::ParseMap, length=" << length);
    ResetToken();
    handler_->StartMap(length);

    for (size_t i=0; i<length; i++)
    {
        ParseKey();
        ParseStream();
        if (i != (length-1))
            handler_->MapSeparator();
    }
    handler_->EndMap(length);
}

}