@charset "utf-8";

* { margin: 0; padding: 0; }

/* Generic preferences */

html, body {
	margin: 0;
	padding: 0;
}

body {
	background-color: white;
}

body, p, ol, ul, td {
	font-family: "Lucida Grande", arial, helvetica, sans-serif;
	font-size: 10pt;
}

/* abbr used in µformats */
abbr {
	border: 0;
}

img {
	border: 0;
}

ul, ol {
	padding-left: 2.5em;
	margin-left: 0;
}

dd {
	padding-left: 2.5em;
	margin-left: 0;
}

hr {
	color: #bbb;
	border: 1px solid #bbb;
}

h1, h2, h3, h4 {
	margin-top: 1.2em;
	margin-bottom: 0.8em;
}

p {
	margin-top: 0.4em;
	margin-bottom: 0.4em;
}

h1 {
	line-height: 90%;
	font-size: 1.5em;
}

h2 {
  line-height: 90%;
	font-size: 1.3em;
}

h3 {
  line-height: 90%;
	font-size: 1.17em;
}

option {
	padding: 1px 2px 1px 2px;
}

span.charcount_warning {
	color: #f00;
}

span.smaller, div.smaller {
	font-size: 80%;
}

span.larger, div.larger {
	font-size: 110%;
}

span.faint {
  color: #ddd;
}

/* Rails error styles */

.fieldWithErrors {
	border: 2px solid red;
	display: table;
}

div.en_grade_buttons .fieldWithErrors {
	border: 0;
	display: none;
}

div.ErrorExplanation {
	width: 400px;
	border: 2px solid red;
	padding: 7px;
	padding-bottom: 12px;
	margin-bottom: 20px;
	background-color: #f0f0f0;
}

div.ErrorExplanation h2 {
	text-align: left;
	font-weight: bold;
	padding: 5px 5px 5px 15px;
	font-size: 12px;
	margin: -7px;
	margin-bottom: 0px;
	background-color: #c00;
	color: #fff;
}

div.errorExplanation p {
	color: #333;
	margin-bottom: 0;
	padding: 5px;
}

div.errorExplanation ul {
	margin-bottom: 0;
}

div.errorExplanation ul li {
	 font-size: 12px;
	 list-style: square;
}

/* General form styles */
div.en_form_section {
	margin: 1.5em 0 1.5em 0;
}

div.en_field {
	margin: 0 5px 10px 0;
	font-size: 90%;
}

div.en_field label {
	font-weight: bold;
}

div.en_field label.en_lateral {
	font-weight: normal;
}

.en_input {
	height: 28px;
	padding: 1px .5em;
	border: 1px solid #ccc;
	background-color: #fff;
}

span.en_required {
	color: red;
}

span.en_gray {
	background-color: #e7e7e7;
}

div.en_delete_button {
	margin-top: 0.5em;
}

div.en_field input[readonly] {
	border: 0px;
	opacity: 0.4;
}

/* flash and error reporting */

div.en_additional_notice {
	background-color: #efefef;
	border: 1px solid #f7f7f7;
	padding: 5px;
	margin-bottom: 15px;
}

div.en_notice {
	background-color: #FFFFCC;
	border: 1px dotted #FFCC33;
	color: #ddaa33;
	padding: 5px;
	margin-bottom: 1em;
}

div.en_error {
	background-color: #FFCCBF;
	border: 1px dotted #FF3300;
	color: #FF3300;
	padding: 5px;
	margin-bottom: 1em;
}

/* clearfix */

.en_clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

/* Hides from IE-mac \*/
* html .en_clearfix {height: 1%; display: block;}
/* End hide from IE-mac */

/* pretty table styles */

table.en_list-block {
	border-collapse: collapse;
}

table.en_list-block tr th {
	font-weight: bold;
	font-size: 12px;
	color: #666;
	padding: 4px;
	text-align:left;
}

table.en_list-block tr td {
	padding: 4px;
}

table.en_list-block tr.en_total {
	border-top: 2px solid #ccc;
}

table.en_list-block tr.en_vat {
	border-top: 2px solid #eee;
}

table.en_list-block tr.en_grand-total {
  background-color: #f7f7f7;
	border-top: 2px solid #FFCC33;
	color: #666;
}

table.en_list-data {
	width: 100%;
  border-collapse: collapse;
}

table.en_list-data tr th {
  font-weight: bold;
  font-size: 12px;
  color: #121212;
  padding: 4px;
  text-align: left;
  border-bottom: 1px dotted #dedede;
  vertical-align: top;
}

table.en_list-data tr td {
  padding: 4px;
  border-bottom: 1px dotted #dedede;
	vertical-align: top;
}

table.en_list-data tr.no-border td, table.en_list-data tr.no-border th {
  border-bottom: 0;
}

table.en_list-data tr td.en_list-data-right {
  border-right: 1px dotted #dedede;
}

tr.en_list-inactive td {
  padding: 4px;
  border-bottom: 1px solid #dedede;
	text-decoration: line-through;
}

tr.en_list-inactive td.en_nostrike {
  text-decoration: none;
}

table.en_list-data tr th.centered {
	text-align: center;
}

table.en_list-data tr td > p:first-child {
	margin-top: 0;
}

table.en_list-data tr td.rborder, table.en_list-data tr th.rborder {
	border-right: 1px solid #dedede;
	padding-right: 0.5em;
}


/* an attrib list is one where the headers are down the LHS */
table.en_list-attrib {
	width: auto;
}

table.en_list-attrib th {
	text-align: left;
}

table.sortable th {
	cursor: pointer;
}

table.sortable th:hover {
	text-decoration: underline;
}

/* registration styles */

td.en_order_total_label {
	text-align: right;
	font-weight: bold;
}

td.en_order_payments_label {
	text-align: right;
}

table#en_order_basket {
	margin-bottom: 1em;
	width: auto;
}

table#en_order_basket thead tr {
	border-top: 1px solid black;
	border-bottom: 1px solid black;
}

table#en_order_basket th {
	text-align: center;
}

table#en_order_basket td {
	font-size: 80%;
}

table#en_order_basket tr.en_order_attendee td {
	padding-top: 1em;
	padding-bottom: 1em;
}

table#en_order_basket tr#en_order_tax {
	border-top: 1px solid black;
	border-bottom: 1px solid #888;
}

table#en_order_basket tr#en_order_tax_footnote td {
	text-align: right;
}

table#en_order_basket tr#en_order_total {
	border-top: 1px solid black;
	border-bottom: 1px solid black;
}

table#en_order_basket tr#en_order_grand_total {
	border-top: 1px solid black;
	border-bottom: 1px solid black;
}

table#en_order_basket tr#en_order_payments {
	border-top: 1px dotted #dedede;
	border-bottom: 1px dotted #dedede;
}

table#en_order_basket tr#en_order_total_due {
	border-top: 1px solid black;
	border-bottom: 1px solid black;
}

td.en_money, table tr th.en_money {
	text-align: right;
}

td.en_numeric, table tr th.en_numeric {
	text-align: right;
}

td.en_subtotal {
	font-weight: bold;
}

td.en_bright {
	border-right: 1px dotted #dedede;
}

td.en_bleft {
	border-left: 1px dotted #dedede;
}

th.en_gray, td.en_gray {
	background-color: #eee;
}


td.en_center {
	text-align: center;
}

td#en_tax_label {
	text-align: right;
	font-weight: bold;
}

table#en_order_basket tr.en_order_basket_warning td {
	color: red;
}

div.en_payment_logo {
	float: right;
	margin-left: 10px;
}

table#en_order_summary {
	width: auto;
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

table#en_order_summary th {
	padding-right: 8em;
}

table#en_order_summary td {
	font-size: 80%;
}

table#en_order_summary tr#en_order_total {
	border-top: 1px solid black;
	border-bottom: 1px solid black;
}

table#en_order_summary tr#en_order_total td {
	font-weight: bold;
}

div.en_order_package {
	font-weight: bold;
}

div.en_order_component_choice {
	font-size: 80%;
}

div.en_order_attendee_name {
	font-weight: bold;
}

div.en_order_attendee_email {
	font-size: 80%;
}

div.en_order_confirmation {
	font-size: 80%;
	margin-top: 0.5em;
}

span.en_order_confirmation_code {
	font-weight: bold;
}

table#en_payment_methods {
	border: 0;
	width: 60%;
}

table#en_payment_methods td {
	padding: 0.25em 0.25em 0.5em 0.25em;
	vertical-align: top;
}

table#en_payment_methods td.en_howpay {
	padding-top: 0.5em;
	padding-right: 0.5em;
	width: 25px;
	height: 25px;
}

div.en_online_surcharge {
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

div.en_online_surcharge span.en_surcharge {
	font-weight: bold;
}

div#en_credit_card_details {
	background-color: #e7e7e7;
	border: 1px solid #ccc;
	padding: 0.5em;
	margin-top: 0.5em;
	width: auto;
}

#en_credit_card_details .en_input {
	font-size: 13px;
	width: 14.5em;
}

div#en_card_expiry_date {
	float: left;
}

div#en_card_start_date {
	float: left;
	margin-left: 2em;
}

div#en_invoice_preamble {
	margin-top: 1em;
}

div.en_component {
	display: none;
}

div.en_component, div.en_subcomponent_survey {
	margin-top: 1em;
	margin-bottom: 1em;
	padding: 0.5em;
	background-color: #e7e7e7;
}

div.en_subcomponent {
	width: 100%;
}

div.en_component h4 {
	margin-top: 0;
	margin-bottom: 0.25em;
}

div.en_component p {
	margin-top: 0.25em;
	font-size: 100%;
}

div.en_package {
}

div.en_component_radio {
	float: left;
	margin-right: 1em;
}

div.en_component_blurb {
	float: left;
	width: 90%;
}

div#en_new_attendee {
	display: none;
}

table#en_order_discounts {
	width: auto;
	margin-bottom: 1em;
}

table#en_order_discounts td {
	vertical-align: top;
}

table#en_order_discounts td.en_token {
	width: 10em;
	margin-right: 2em;
}

span.en_confcode {
	font-family: "Courier New", "Courier", monospace;
	font-size: 110%;
	font-weight: bold;
}



div.en_search_panel {
	border: 1px solid #888;
	background: #e7e7e7;
	padding: 0.5em;
	margin-bottom: 0.5em;
}

div.en_status {
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

table.en_details_table th {
	width: 10em;
}

table.en_details_table {
	width: auto;
}


/* public schedule styles */


div.en_popup_content {
	font-size: 90%;
}

div.en_popup_time {

}

div.en_popup_name {
	font-weight: bold;
}

div.en_popup_speaker {
	font-style: italic;
}

div.en_popup_desc {

}


div.slot_room_title {
	text-align: center;
	margin: 0;
	padding: 0;
	border: 0;
	color: white;
	background: black;
}

div.slot_room_title div {
	padding-top: 6px;
	font-size: 90%;
}

div.slot_room_tools {
	margin: 0;
	padding: 0;
	color: white;
	background: black;
	display: none;
}

div.slot_room_tools div {
	padding: 2px;
	background: #444;
	font-size: 90%;
}

div.slot_room_tools div.en_field {
	font-size: 85%;
	font-weight: normal;
}

div.slot_room_tools input, div.slot_room_tools select {
	font-size: 85%;
}

div#en_grid_dates {
	font-size: 80%;
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

div#en_grid_dates ul {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

div#en_grid_dates ul li {
	display: inline;
	font-size: 80%;
	margin-top: 4px;
	display: inline;
	font-size: 80%;
	border: 1px solid black;
	padding: 2px;
	margin-left: 0px;
	margin-right: 4px;
	background-color: white;
}

div#en_grid_dates ul li.active {
	background-color: black;
}

div#en_grid_dates ul li.active a {
	color: white;
}

div#en_grid_dates a {
	text-decoration: none;
	color: black;
	padding-bottom: 2px;
}

div#en_grid_topic_key {
	font-size: 80%;
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

div#en_grid_topic_key ul {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

div#en_grid_topic_key li {
	margin-top: 4px;
	margin-bottom: 4px;
	display: inline;
	font-size: 80%;
	border: 1px solid black;
	padding: 2px;
	margin-left: 0px;
	margin-right: 4px;
}

div#en_grid_topic_key a {
	text-decoration: none;
	color: black;
	padding-bottom: 2px;
}


div.en_session {
	margin-top: 1.0em;
	margin-bottom: 1.0em;
}

body#en_schedule_detail div.en_session {
	margin-top: 0;
}

div.en_session_highlight {
	background-color: #ffffcc;
	border: 1px solid #ffcc99;
	margin-left: -5px;
	margin-right: -5px;
	padding: 4px;
}

div.en_session_time {
font-size: 90%;
}

div.en_session_title {
	font-weight: bold;
	margin-bottom: 0.25em;
}

div.en_session_roominfo {
font-size: 90%;
}

div.en_session_downloads {
font-size: 90%;
}

div.en_session_downloads li {
	margin-top: 0;
	font-size: 90%;
}

div.en_session_downloads ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

span.en_filetype {
	font-size: 90%;
}

div.en_session_speakers {
font-style: italic;
}

div.en_session_description {
margin-top: 0.5em;
margin-left: 1em;
}

body#en_schedule_detail div.en_session_description {
	margin-left: 0;
}


/* stuff for user photo cropper */

div#en_photo_wrapper {
	position: relative;
}

div#en_photo_container {
	position: relative;
}

div#en_crop_area {
	position: absolute;
	top: 0px;
	left: 0px;
	height: 100px;
	width: 75px;
}

.ui-resizable-knob {
	border: 1px #888 dashed;
}


/* used to wrap speaker details on a proposal detail page */
div.en_schedule_session_speaker {
	margin-bottom: 1em;
	/* clear any preceding photo */
	clear: right;
}

div#slot_grid {
}

div#en_grid_container {
	width: 100%;
	overflow: auto;
}

div#en_gridpop {
	background: #fff;
	border: 1px solid black;
	position: absolute;
	width: 200px;
	z-index: 100;
	padding: 2px;
}

table#en_proposal_speaker_table {
	width: auto;
}

table#en_proposal_speaker_table td {
	padding-right: 2em;
}

div#en_proposal_speakers_reorder {
	display: none;
}

div.en_sortable {
	margin-top: 0.5em;
	margin-bottom: 0.5em;
	border: 1px solid #ddd;
	padding: 0.5em;
	font-weight: bold;
	cursor: pointer;
}

div.en_sortable_hover {
	border: 1px dotted black;
	background-color: #e7e7e7;
}


/* rating styles */

img.en_rating_on {
	padding-right: 1px;
}

img.en_rating_off {
	padding-right: 1px;
}

div#schedule_detail div.en_grade_block {
	float: right;
	width: 10em;
	margin-left: 0.5em;
	margin-bottom: 1em;
}

div.en_grade_average_detail {
	font-size: 80%;
}

/* Override star rating path from /stylesheets/jquery.rating-3.14.css */
/* Inclusion of "body" in selector makes it more specific. */

body div.rating-cancel,
body div.rating-cancel a {
	background-image: url(/images/delete.gif);
}

body div.star-rating,
body div.star-rating a {
	background-image: url(/images/star.gif);
}

div.en_grade_select { height: 38px; }

input.auto-submit-star, input.en_grade_submit,
div#en_eval_grade input[name="evaluation[grade]"],
div#en_eval_grade label.en_lateral { visibility: hidden; }

div.en_grade_buttons .fieldWithErrors { display: inline; }

.ui-widget-overlay {
	background:rgba(0,0,0,.5);
	position:absolute;
	top:0;
}

div.en_liquid_error {
	border: 2px solid #484;
	background: #ffe;
	padding: 0 1em 1em 1em;
	font-family: sans-serif;
}

div.en_liquid_error p, div.en_liquid_error h3 {
	font-family: sans-serif;
}

/* diffing styles */

pre.en_match {
   border-left: 3px solid white;
}
pre.en_only_a {
    background-color: #fdd;
    color: red;
    text-decoration: line-through;
    border-left: 3px solid #fdd;
}
pre.en_only_b {
    background-color: #dfd;
    color: green;
    border-left: 3px solid green;
}
div.en_diff pre {
	padding: 0;
	padding-left: 1em;
	margin: 0;
	font-family: Lucida, Courier, monospaced;
	white-space: pre;
	line-height: 140%;
}

/* tag matching */

.tagMatches {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

.tagMatches span {
    padding: 2px;
    margin-right: 4px;
    background-color: #444;
	  -moz-border-radius: 6px;
	  -webkit-border-radius: 6px;
    font-size: 90%;
    color: #fff;
    cursor: pointer;
}

/* inline tag editing */

.en_proposal_tags_view:hover {
  background-color: #eee;
  cursor: pointer;
}

.en_proposal_tags_edit {
  display: none;
}

.en_tag_save {
  cursor: pointer;
}

.en_tag_cancel {
  cursor: pointer;
}

.en-printers-form {
  margin-top: 4%;
}

/* Rails translation: when there is none, an element is shown with this in it.
 */
.translation_missing {
	border: 1px solid red;
	background-color: yellow;
}

/* Subcomponent grid styles for reg order page */
body.en_overlay_displayed {
  overflow: hidden;
}

div.en_component_w_grid {
  background-color: #fff;
}

.en_subcomponent_grid_scroll {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  padding: 1.2rem 0;
  margin: 0;
  background: #fff;
}

.en_subcomponent_grid {
  border: 0;
  border-collapse: collapse;
  font-weight: normal;
}

.en_subcomponent_grid th,
.en_subcomponent_grid td {
  vertical-align: top;
  padding: 0.75rem;
  height: 14.28rem;
}

/* set min-height explicitly for FF, using this formula: */
/* (td height * td rowspan value) - (td padding * 2) */

.en_subcomponent_grid td[rowspan="2"] .en_subcomponent {
  min-height: 27.06rem; /* (14.28rem * 2) - (0.75rem * 2) */
}

.en_subcomponent_grid td[rowspan="3"] .en_subcomponent {
  min-height: 41.34rem; /* (14.28rem * 3) - (0.75rem * 2) */
}

.en_subcomponent_grid td[rowspan="4"] .en_subcomponent {
  min-height: 55.62rem; /* (14.28rem * 4) - (0.75rem * 2) */
}

.en_subcomponent_grid th {
  width: 7rem;
  font-weight: normal;
  text-align: right;
  background-color: #fff;
  position: absolute;
  z-index: 10;
  padding-left: 0;
}

.en_subcomponent_grid td {
  position: relative;
}

.en_subcomponent_grid td:nth-child(2) {
  padding-left: 8.5rem;
}

.en_subcomponent_grid .en_subcomponent {
  display: block;
  width: 18rem;
  height: 100%;
}

.en_subcomponent_grid label.en_component_blurb {
  padding: .75rem 1rem;
  border: 1px solid #c9c9c9;
  background-color: #fff;
  height: 100%;
  width: 100%;
  cursor: pointer;
  color: #404040;
  font-size: 14px;
  font-weight: normal;
  white-space: normal;
  display: block;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

.en_subcomponent_grid label.en_component_blurb:hover {
  outline: .5rem solid #ccc;
  border: 1px solid #fff;
}

.en_component_exclusive_with_selected + label.en_component_blurb:hover {
  border: 1px solid #c9c9c9;
}

.en_subcomponent_grid label.en_component_blurb .en_component_title {
  display: block;
  width: 9em;
  white-space: normal;
  padding-bottom: 2rem;
}

.en_subcomponent_grid td input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.en_subcomponent_grid input:checked + label.en_component_blurb {
  outline: .5rem solid #007eff;
  border: 1px solid #fff;
  background: #fff;
}

.en_subcomponent_grid input:disabled + label.en_component_blurb,
.en_component_exclusive_with_selected + label.en_component_blurb {
  background: #e0e0e0;
  color: #404040;
  border: 1px solid #e0e0e0;
}

.en_subcomponent_grid input:disabled + label.en_component_blurb {
  cursor: default;
}

.en_subcomponent_grid input:disabled + label.en_component_blurb:hover {
  outline: none;
}

.en_subcomponent_grid label .en_sold_out {
  text-align: right;
  color: #b9002d;
  position: absolute;
  right: 1rem;
  bottom: .75rem;
  font-size: 1.3rem;
}

.en_subcomponent_grid tr {
  padding-bottom: 5px;
  position: relative;
  height: 14.28rem;
}

.en_subcomponent_grid a.en_subcomponent_info_link {
  content: "";
  width: 1.8rem;
  height: 1.8rem;
  position: absolute;
  top: .75rem;
  right: 1rem;
  background: url('//cdn.oreillystatic.com/conferences/oscon/2016/austin/more-info-icon.svg');
  background-size: 1.8rem 1.8rem;
  display: block;
  z-index: 1;
  opacity: .6;
}

.en_subcomponent_info_overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.9);
  z-index: 1000;
  overflow: scroll;
}

.en_subcomponent_info_overlay.hide {
  display: none;
}

.en_subcomponent_info {
  max-width: 48rem;
  color: #fff;
  margin: 0 auto;
  margin-top: 10%;
  padding: 2rem;
}

.en_subcomponent_info h4 {
  color: #fff;
}

.en_subcomponent_info_close {
  width: 58px;
  height: 58px;
  position: fixed;
  right: 3rem;
  top: 3rem;
  background: url('//cdn.oreillystatic.com/en/assets/1/eventprovider/1/big_close_cross.png');
  z-index: 100;
  cursor: pointer;
}
