/*-------------------+
 | Part: Form styles |
 +-------------------*/


/* Global
======================================================================*/
fieldset { border-bottom: 1px solid #ddd; margin-bottom: 3rem; padding-bottom: 3rem; }
fieldset:last-of-type { border: 0; padding-bottom: 0; }
input, select, textarea { font-size: 1em; }
input[type="checkbox"], input[type="radio"] { margin: 4px; }
input:focus, select:focus, textarea:focus { outline: 2px solid #0192ff; outline-offset: -1px; outline-radius: 3px; }
legend { font-size: 1.5rem; font-weight: bold; margin-bottom: 0.5em; }
legend em { color: #777; font-size: 0.8em; font-style: normal; font-weight: normal; margin-left: 0.3em; }
textarea { height: 5em; }

/* Specifics
======================================================================*/
/* Buttons */
.btn {
	background: #f0f0f0;
	border: 1px solid #ddd;
	border-radius: 3px;
	color: #369;
	font-size: 16px;
	font-weight: bold;
        margin-right: 0.5em;
        overflow: visible;
	padding: 0.5em 1em;
}

.btn:hover { text-decoration: none; }

/* Character counters */
.charcount { color: #777; float: right; font-weight: normal; margin-right: 0.5em; }
.charcount .over { color: #f00; font-weight: bold; }

/* Checklists */
.checklist { border: 1px solid #ccc; max-height: 20em; line-height: 1.4;    margin: 0 0 1em 0; overflow: auto; }
.checklist input { margin-bottom: 1px; }
.checklist label { display: block; padding: 0.1em 0 0.1em 25px; height: 1%; text-indent: -25px; }
.checklist li { background: none; display: block; float: none; margin: 0; padding: 0; white-space: normal; width: 100%; }
.checklist li p { margin: 0; padding: 1em 0 0; }
.checklist li ul { margin: 0 0 0 2em; }
.checklist .mute { font-size: 1em; white-space: nowrap; }
.checklist p { font-weight: bold; margin-bottom: 0.25em; }
.checklist .selected { background: #ffa; }
.checklist ul { margin-bottom: 1em; }

/* Datepicker */
.ui-datepicker-trigger { background: none; border: 0; cursor: pointer; padding: 0; }

/* Dedicated searches */
#dedicated-search { background: #f5f5f5; border-radius: 10px; margin-bottom: 20px; padding: 20px; }
#dedicated-search .brief-form { width: 100%; }
#dedicated-search .brief-form .field { float: left; margin: 0 2% 0 0; width: 39%; }
#dedicated-search .brief-form .field-submit { float: right; margin: 1.25em 0 0; width: auto; }
#dedicated-search .brief-form label { display: block; }
#dedicated-search input, #dedicated-search select { font-size: 16px; }
#dedicated-search .more { background: none; margin-top: 1em; padding: 0; text-transform: none; }
#dedicated-search .more-trigger { clear: both; margin: 0; padding-top: 0.5em; }
#dedicated-search .txt { width: 93%; }

/* Fields */
.field { margin-bottom: 1em; }
.field p { margin-bottom: 0.5em; }
.form { clear: both; height: 1%; }
.form dt { clear: both; font-weight: normal; margin: 0; }
.form dd.field { float: right; width: 65%; }
.form dt label { display: inline; }
.form dt .label { color: inherit; float: left; font-size: 1em; text-align: right; white-space: normal; width: 32%; }

        /* Multiple fields on a single line */
        .form .field-single-line { width: 47%; }
        .form .field-single-line p { float: left; margin: 0 1% 0.5em 0; }
        .form .field-single-line .txt { width: 100%; }
        
                /* Location fields */
                .form .field-single-line .field-loc-city { width: 44%; }
                .form .field-single-line .field-loc-state { width: 25%; }
                .form .field-single-line .field-loc-state .txt { width: 68%; }
                .form .field-single-line .field-loc-postal { float: right; margin-right: 0; width: 27%; }
                
                /* Name fields */
                        /* Full name */
                        dl.form .fields-name-full .field-name-first { width: 42%; }
                        dl.form .fields-name-full .field-name-last { margin-right: 0; width: 42%; }
                        dl.form .fields-name-full .field-name-middle { margin-right: 4%; width: 10%; }
                        
                        /* Short name */
                        dl.form .fields-name-short .field-name-first { width: 49%; }
                        dl.form .fields-name-short .field-name-last { margin-right: 0; width: 50%; }
                        
                        /* With suffix */
                        dl.form .fields-name-long .field-name-first { margin-right: 3%; width: 26%; }
                        dl.form .fields-name-long .field-name-last { width: 42%; }
                        dl.form .fields-name-long .field-name-middle { margin-right: 4%; width: 10%; }
                        dl.form .fields-name-long .field-name-suffix { margin-right: 0; width: 13%; }
                        
        /* Fields in modal dialog */
        .modal .form dd.field { width: 50%; }
        .modal .form dt .label { width: 47%; }
    
    /* Old */
    table.form { width: 100%; }
    .form > tbody > tr > td { padding: 0 0 20px 30px; width: 70%; }
    .form > tbody > tr > th { padding: 0 0 20px 0; text-align: right; width: 30%; }
    
        /* Multiple fields on a single line */
        .fields { width: 47%; }
        .fields .txt { width: 100%; }
            
            /* Name: short */
            .fields .c-name-first, .fields .c-name-last, .fields .c-name-pref { float: none; width: 100%; }

/* Google results */
.google-results a { margin-left: 0.25em; }
.google-results h2 { font-size: 1em; }
.google-results ul { list-style: none; margin: 0; }

/* Help text */
.field-help { color: #666; font-size: 0.8em; font-weight: normal; }
.field-help img { vertical-align: middle; }

/* List builders (add/remove) */
.list-builder { list-style: none; margin: 0; }

/* List builder */
.list-builder { list-style: none; margin-left: 0; }
.list-builder > li { border: 1px solid #ddd; border-radius: 4px; overflow: hidden; padding: 20px 120px 20px 20px; }
.list-builder p { margin-bottom: 0.5em;  }
.list-builder-add a { background: #dbeeff; border-radius: 6px; display-inline: block; font-size: 11px; font-weight: bold; padding: 0.4em 1em; text-decoration: none; }
.list-builder-add a:hover { background: #fff; }
.list-builder-tools { float: right; margin-right: -100px; text-align: right; }
.list-builder-tools input { background: #fff; border: 1px solid #ddd; border-radius: 4px; line-height: 1; padding: 0.3em 0.5em; }
.list-builder-tools input:hover { background: #ddd; }

    /* Deadlines */
    .list-builder .deadline .txt { width: 50%; }

/* Notifications */
div.alert, div.confirm, div.notice { color: #000; font-size: 0.8em; margin-bottom: 1em; padding: 2em; }
div.alert p, div.confirm p, div.notice p { margin: 0; }
div.alert .mute, div.confirm .mute, div.notice .mute { font-size: 1em; }
div.alert h6, div.confirm h6, div.notice h6 { font-size: 1.3em; margin-bottom: 0; }
div.alert li, div.confirm li, div.notice li { background: none; padding: 0; }
div.alert ul, div.confirm ul, div.notice ul { list-style: disc outside; margin-left: 2em; }

	/* Alerts */
	.alert { color: #e30013; padding: 0; }
	div.alert { background: #ffd4d4; border: 3px solid #dd9898; }
	
	/* Confirmations */
	div.confirm { background: #d8ffd4; border: 3px solid #9edd98; }
	
	/* Notices */
	div.notice { background: #fff6d3; border: 3px solid #ffe27e; }

/* Options */
.options-h, .options-v { list-style: none; margin: 0; }
.options-h input, .options-v input { margin: 0 0.5em -0.05em 0; }
.options-h img { border-bottom: 3px solid #fff; padding: 5px; vertical-align: middle; }
.options-h label, .options-v label { display: block; }
.options-h li, .options-v li { background: none; margin-bottom: 0.3em; padding: 0; }
.options-h li { display: inline; margin-right: 0.7em; white-space: nowrap; }
.options-v li { padding-left: 22px; text-indent: -22px; }
.options-v ul { margin: 0.3em 0 1em; }

    /* Boxes */
    .save { color: #b9121b; }
    .form-option { border: 1px solid #ddd; border-radius: 5px; }
    .form-option-head { background: #f5f1eb; border-radius: 5px 5px 0 0; }
    .form-option-content, .form-option-head { padding: 0.5em; }

/* Required text */
.req { color: #f00; }

/* Placeholder */
input.placeholder, textarea.placeholder { color: #777; font-style: italic; }
input::-moz-placeholder, textarea::-moz-placeholder { color: #999; font-style: italic; }
input:-ms-input-placeholder, textarea:-ms-input-placeholder { color: #999; font-style: italic; }
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #999; font-style: italic; }

/* Progress forms */
#progress-form dt .field-help { color: #818181; display: block; float: none; font-size: 12px; width: auto; }
#progress-form dl.form .label { width: 32%; }
#progress-form .form-content { background: #f0f0f0; float: right; min-height: 300px; padding: 30px 30px; width: 73%; }
#progress-form textarea.txt { height: 10em; width: 98%; }

    /* Tabs */
    #progress-form .form-nav { float: left; font-size: 14px; list-style: none; margin: 0; position: relative; width: 20.5%; }
    #progress-form .form-nav a { display: block; padding: 10px; text-decoration: none; }
    #progress-form .form-nav a:hover { text-decoration: underline; }
    #progress-form .form-nav .current { background: #f0f0f0; font-weight: bold; padding: 10px; }
    #progress-form .form-nav .current a { color: #000; padding: 0; }
    #progress-form .form-nav .current a, #progress-form .form-nav li:hover a { color: #414042; }
    #progress-form .form-nav .disabled { color: #aaa; font-style: italic; padding: 10px; }

/* Questions */
.questions { list-style: decimal; }
.questions p { margin-bottom: 0.5em; }

    /* Answers */
    .answers { list-style: lower-alpha; }

/* Search */
.search { background: #fff; border: 1px solid #ccc; border-radius: 0.5rem; display: -ms-flexbox; display: flex; position: relative; white-space: nowrap; }

.search button {
    -webkit-appearance: none;
    background: none;
    border: 0;
    border-radius: 0 4px 4px 0;
    color: #505050;
    cursor: pointer;
    -ms-flex: 0 0 3em;
    flex: 0 0 3em;
    font-size: 0.8em;
    padding: 0.7em 0;
}

.search button:hover { background: #eee; }
.search .search-label { display: none; }
.search .txt { background: none; border: 0; box-shadow: none; display: block; margin: 0; min-width: 0; padding: 0; text-indent: 0.6em; }

    /* Autocomplete */
    .suggestions { background: #fff; border: 1px solid #777; left: 0; max-height: 20em; overflow-x: hidden; overflow-y: scroll; position: absolute; top: 2.1em; width: 100%; }
    .suggestions a { color: #000; display: block; padding: 0.3em 0.8em 0.4em 2.5em; text-decoration: none; text-indent: -1.7em; height: 1%; }
    .suggestions a:hover { background: #f0f0f0; text-decoration: none; }
    .suggestions li { clear: both; margin: 0; height: 1%; }
    .suggestions li span { font-size: 1.1em; }
    .suggestions li em { display: block; }
    .suggestions p { display: none; }
    .suggestions ul { list-style: none; margin: 0; }
    
    /* Site search */
    #site-search { display: none; font-size: 2rem; position: relative; }
    #site-search .close { -ms-flex: 0 0 3em; flex: 0 0 3em; text-align: center; }
    #site-search .content { align-items: center; display: -ms-flexbox; display: flex; padding: 2rem; }
    #site-search .search { flex-grow: 1; }
    #site-search-wrapper { background: rgba(255, 255, 255, 0.9); border-bottom: 1px solid #ddd; box-sizing: border-box; left: 0; position: absolute; top: 0; width: 100%; z-index: 100; }

/* Text boxes */
.txt, .txt-date, .txt-med, .txt-num {
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    box-shadow: inset 0 1px 1px #ddd;
    margin-right: 0.5em;
    padding: 0.3em;
    vertical-align: middle;
}

.txt { width: 100%; }
.txt-date { width: 7em; }
.txt-med { width: 47%; }
.txt-num { width: 4em; }