
@import 'variables';
@import 'mixins';

@function url-friendly-colour( $color ) {
	@return '%23' + str-slice( '#{ $color }', 2, -1 );
}

body {
	background: $body-background;
}


/* Links */

a {
	color: $link;

	&:hover,
	&:active,
	&:focus {
		color: $link-focus;
	}
}

#post-body .misc-pub-post-status:before,
#post-body #visibility:before,
.curtime #timestamp:before,
#post-body .misc-pub-revisions:before,
span.wp-media-buttons-icon:before {
	color: currentColor;
}

.wp-core-ui .button-link {
	color: $link;

	&:hover,
	&:active,
	&:focus {
		color: $link-focus;
	}
}

.media-modal .delete-attachment,
.media-modal .trash-attachment,
.media-modal .untrash-attachment,
.wp-core-ui .button-link-delete {
	color: #a00;
}

.media-modal .delete-attachment:hover,
.media-modal .trash-attachment:hover,
.media-modal .untrash-attachment:hover,
.media-modal .delete-attachment:focus,
.media-modal .trash-attachment:focus,
.media-modal .untrash-attachment:focus,
.wp-core-ui .button-link-delete:hover,
.wp-core-ui .button-link-delete:focus {
	color: #dc3232;
}

/* Forms */

input[type=checkbox]:checked::before {
	content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27#{url-friendly-colour($form-checked)}%27%2F%3E%3C%2Fsvg%3E");
}

input[type=radio]:checked::before {
	background: $form-checked;
}

.wp-core-ui input[type="reset"]:hover,
.wp-core-ui input[type="reset"]:active {
	color: $link-focus;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="color"]:focus,
input[type="date"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="email"]:focus,
input[type="month"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="time"]:focus,
input[type="url"]:focus,
input[type="week"]:focus,
input[type="checkbox"]:focus,
input[type="radio"]:focus,
select:focus,
textarea:focus {
	border-color: $highlight-color;
	box-shadow: 0 0 0 1px $highlight-color;
}


/* Core UI */

.wp-core-ui {

	.button {
		border-color: #7e8993;
		color: #32373c;
	}

	.button.hover,
	.button:hover,
	.button.focus,
	.button:focus {
		border-color: darken( #7e8993, 5% );
		color: darken( #32373c, 5% );
	}

	.button.focus,
	.button:focus {
		border-color: #7e8993;
		color: darken( #32373c, 5% );
		box-shadow: 0 0 0 1px #32373c;
	}

	.button:active {
		border-color: #7e8993;
		color: darken( #32373c, 5% );
		box-shadow: none;
	}

	.button.active,
	.button.active:focus,
	.button.active:hover {
		border-color: $button-color;
		color: darken( #32373c, 5% );
		box-shadow: inset 0 2px 5px -3px $button-color;
	}

	.button.active:focus {
		box-shadow: 0 0 0 1px #32373c;
	}

	@if ( $low-contrast-theme != "true" ) {
		.button,
		.button-secondary {
			color: $highlight-color;
			border-color: $highlight-color;
		}

		.button.hover,
		.button:hover,
		.button-secondary:hover{
			border-color: darken($highlight-color, 10);
			color: darken($highlight-color, 10);
		}

		.button.focus,
		.button:focus,
		.button-secondary:focus {
			border-color: lighten($highlight-color, 10);
			color: darken($highlight-color, 20);;
			box-shadow: 0 0 0 1px lighten($highlight-color, 10);
		}

		.button-primary {
			&:hover {
				color: #fff;
			}
		}
	}

	.button-primary {
		@include button( $button-color );
	}

	.button-group > .button.active {
		border-color: $button-color;
	}

	.wp-ui-primary {
		color: $text-color;
		background-color: $base-color;
	}
	.wp-ui-text-primary {
		color: $base-color;
	}

	.wp-ui-highlight {
		color: $menu-highlight-text;
		background-color: $menu-highlight-background;
	}
	.wp-ui-text-highlight {
		color: $menu-highlight-background;
	}

	.wp-ui-notification {
		color: $menu-bubble-text;
		background-color: $menu-bubble-background;
	}
	.wp-ui-text-notification {
		color: $menu-bubble-background;
	}

	.wp-ui-text-icon {
		color: $menu-icon;
	}
}


/* List tables */
@if $low-contrast-theme == "true" {
	.wrap .page-title-action:hover {
		color: $menu-text;
		background-color: $menu-background;
	}
} @else {
	.wrap .page-title-action,
	.wrap .page-title-action:active {
		border: 1px solid $highlight-color;
		color: $highlight-color;
	}

	.wrap .page-title-action:hover {
		color: darken($highlight-color, 10);
		border-color: darken($highlight-color, 10);
	}

	.wrap .page-title-action:focus {
		border-color: lighten($highlight-color, 10);
		color: darken($highlight-color, 20);;
		box-shadow: 0 0 0 1px lighten($highlight-color, 10);
	}
}

.view-switch a.current:before {
	color: $menu-background;
}

.view-switch a:hover:before {
	color: $menu-bubble-background;
}


/* Admin Menu */

#adminmenuback,
#adminmenuwrap,
#adminmenu {
	background: $menu-background;
}

#adminmenu a {
	color: $menu-text;
}

#adminmenu div.wp-menu-image:before {
	color: $menu-icon;
}

#adminmenu a:hover,
#adminmenu li.menu-top:hover,
#adminmenu li.opensub > a.menu-top,
#adminmenu li > a.menu-top:focus {
	color: $menu-highlight-text;
	background-color: $menu-highlight-background;
}

#adminmenu li.menu-top:hover div.wp-menu-image:before,
#adminmenu li.opensub > a.menu-top div.wp-menu-image:before {
	color: $menu-highlight-icon;
}


/* Active tabs use a bottom border color that matches the page background color. */

.about-wrap .nav-tab-active,
.nav-tab-active,
.nav-tab-active:hover {
	background-color: $body-background;
	border-bottom-color: $body-background;
}


/* Admin Menu: submenu */

#adminmenu .wp-submenu,
#adminmenu .wp-has-current-submenu .wp-submenu,
#adminmenu .wp-has-current-submenu.opensub .wp-submenu,
.folded #adminmenu .wp-has-current-submenu .wp-submenu,
#adminmenu a.wp-has-current-submenu:focus + .wp-submenu {
	background: $menu-submenu-background;
}

#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after {
	border-right-color: $menu-submenu-background;
}

#adminmenu .wp-submenu .wp-submenu-head {
	color: $menu-submenu-text;
}

#adminmenu .wp-submenu a,
#adminmenu .wp-has-current-submenu .wp-submenu a,
.folded #adminmenu .wp-has-current-submenu .wp-submenu a,
#adminmenu a.wp-has-current-submenu:focus + .wp-submenu a,
#adminmenu .wp-has-current-submenu.opensub .wp-submenu a {
	color: $menu-submenu-text;

	&:focus, &:hover {
		color: $menu-submenu-focus-text;
	}
}


/* Admin Menu: current */

#adminmenu .wp-submenu li.current a,
#adminmenu a.wp-has-current-submenu:focus + .wp-submenu li.current a,
#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a {
	color: $menu-submenu-current-text;

	&:hover, &:focus {
		color: $menu-submenu-focus-text;
	}
}

ul#adminmenu a.wp-has-current-submenu:after,
ul#adminmenu > li.current > a.current:after {
    border-right-color: $body-background;
}

#adminmenu li.current a.menu-top,
#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,
.folded #adminmenu li.current.menu-top {
	color: $menu-current-text;
	background: $menu-current-background;
}

#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,
#adminmenu a.current:hover div.wp-menu-image:before,
#adminmenu li.current div.wp-menu-image:before,
#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,
#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,
#adminmenu li:hover div.wp-menu-image:before,
#adminmenu li a:focus div.wp-menu-image:before,
#adminmenu li.opensub div.wp-menu-image:before {
	color: $menu-current-icon;
}


/* Admin Menu: bubble */

#adminmenu .awaiting-mod,
#adminmenu .update-plugins {
	color: $menu-bubble-text;
	background: $menu-bubble-background;
}

#adminmenu li.current a .awaiting-mod,
#adminmenu li a.wp-has-current-submenu .update-plugins,
#adminmenu li:hover a .awaiting-mod,
#adminmenu li.menu-top:hover > a .update-plugins {
	color: $menu-bubble-current-text;
	background: $menu-bubble-current-background;
}


/* Admin Menu: collapse button */

#collapse-button {
    color: $menu-collapse-text;
}

#collapse-button:hover,
#collapse-button:focus {
    color: $menu-submenu-focus-text;
}

/* Admin Bar */

#wpadminbar {
	color: $menu-text;
	background: $menu-background;
}

#wpadminbar .ab-item,
#wpadminbar a.ab-item,
#wpadminbar > #wp-toolbar span.ab-label,
#wpadminbar > #wp-toolbar span.noticon {
	color: $menu-text;
}

#wpadminbar .ab-icon,
#wpadminbar .ab-icon:before,
#wpadminbar .ab-item:before,
#wpadminbar .ab-item:after {
	color: $menu-icon;
}

#wpadminbar:not(.mobile) .ab-top-menu > li:hover > .ab-item,
#wpadminbar:not(.mobile) .ab-top-menu > li > .ab-item:focus,
#wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus,
#wpadminbar.nojs .ab-top-menu > li.menupop:hover > .ab-item,
#wpadminbar .ab-top-menu > li.menupop.hover > .ab-item {
	color: $menu-submenu-focus-text;
	background: $menu-submenu-background;
}

#wpadminbar:not(.mobile) > #wp-toolbar li:hover span.ab-label,
#wpadminbar:not(.mobile) > #wp-toolbar li.hover span.ab-label,
#wpadminbar:not(.mobile) > #wp-toolbar a:focus span.ab-label {
	color: $menu-submenu-focus-text;
}

#wpadminbar:not(.mobile) li:hover .ab-icon:before,
#wpadminbar:not(.mobile) li:hover .ab-item:before,
#wpadminbar:not(.mobile) li:hover .ab-item:after,
#wpadminbar:not(.mobile) li:hover #adminbarsearch:before {
	color: $menu-submenu-focus-text;
}


/* Admin Bar: submenu */

#wpadminbar .menupop .ab-sub-wrapper {
	background: $menu-submenu-background;
}

#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,
#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu {
	background: $menu-submenu-background-alt;
}

#wpadminbar .ab-submenu .ab-item,
#wpadminbar .quicklinks .menupop ul li a,
#wpadminbar .quicklinks .menupop.hover ul li a,
#wpadminbar.nojs .quicklinks .menupop:hover ul li a {
	color: $menu-submenu-text;
}

#wpadminbar .quicklinks li .blavatar,
#wpadminbar .menupop .menupop > .ab-item:before {
	color: $menu-icon;
}

#wpadminbar .quicklinks .menupop ul li a:hover,
#wpadminbar .quicklinks .menupop ul li a:focus,
#wpadminbar .quicklinks .menupop ul li a:hover strong,
#wpadminbar .quicklinks .menupop ul li a:focus strong,
#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover > a,
#wpadminbar .quicklinks .menupop.hover ul li a:hover,
#wpadminbar .quicklinks .menupop.hover ul li a:focus,
#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,
#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,
#wpadminbar li:hover .ab-icon:before,
#wpadminbar li:hover .ab-item:before,
#wpadminbar li a:focus .ab-icon:before,
#wpadminbar li .ab-item:focus:before,
#wpadminbar li .ab-item:focus .ab-icon:before,
#wpadminbar li.hover .ab-icon:before,
#wpadminbar li.hover .ab-item:before,
#wpadminbar li:hover #adminbarsearch:before,
#wpadminbar li #adminbarsearch.adminbar-focused:before {
	color: $menu-submenu-focus-text;
}

#wpadminbar .quicklinks li a:hover .blavatar,
#wpadminbar .quicklinks li a:focus .blavatar,
#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover > a .blavatar,
#wpadminbar .menupop .menupop > .ab-item:hover:before,
#wpadminbar.mobile .quicklinks .ab-icon:before,
#wpadminbar.mobile .quicklinks .ab-item:before {
	color: $menu-submenu-focus-text;
}

#wpadminbar.mobile .quicklinks .hover .ab-icon:before,
#wpadminbar.mobile .quicklinks .hover .ab-item:before {
	color: $menu-icon;
}


/* Admin Bar: search */

#wpadminbar #adminbarsearch:before {
	color: $menu-icon;
}

#wpadminbar > #wp-toolbar > #wp-admin-bar-top-secondary > #wp-admin-bar-search #adminbarsearch input.adminbar-input:focus {
	color: $menu-text;
	background: $adminbar-input-background;
}

/* Admin Bar: recovery mode */

#wpadminbar #wp-admin-bar-recovery-mode {
	color: $adminbar-recovery-exit-text;
	background-color: $adminbar-recovery-exit-background;
}

#wpadminbar #wp-admin-bar-recovery-mode .ab-item,
#wpadminbar #wp-admin-bar-recovery-mode a.ab-item {
	color: $adminbar-recovery-exit-text;
}

#wpadminbar .ab-top-menu > #wp-admin-bar-recovery-mode.hover >.ab-item,
#wpadminbar.nojq .quicklinks .ab-top-menu > #wp-admin-bar-recovery-mode > .ab-item:focus,
#wpadminbar:not(.mobile) .ab-top-menu > #wp-admin-bar-recovery-mode:hover > .ab-item,
#wpadminbar:not(.mobile) .ab-top-menu > #wp-admin-bar-recovery-mode > .ab-item:focus {
	color: $adminbar-recovery-exit-text;
	background-color: $adminbar-recovery-exit-background-alt;
}

/* Admin Bar: my account */

#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
	border-color: $adminbar-avatar-frame;
	background-color: $adminbar-avatar-frame;
}

#wpadminbar #wp-admin-bar-user-info .display-name {
	color: $menu-text;
}

#wpadminbar #wp-admin-bar-user-info a:hover .display-name {
	color: $menu-submenu-focus-text;
}

#wpadminbar #wp-admin-bar-user-info .username {
	color: $menu-submenu-text;
}


/* Pointers */

.wp-pointer .wp-pointer-content h3 {
	background-color: $highlight-color;
	border-color: darken( $highlight-color, 5% );
}

.wp-pointer .wp-pointer-content h3:before {
	color: $highlight-color;
}

.wp-pointer.wp-pointer-top .wp-pointer-arrow,
.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,
.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,
.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner {
	border-bottom-color: $highlight-color;
}


/* Media */

.media-item .bar,
.media-progress-bar div {
	background-color: $highlight-color;
}

.details.attachment {
	box-shadow:
		inset 0 0 0 3px #fff,
		inset 0 0 0 7px $highlight-color;
}

.attachment.details .check {
	background-color: $highlight-color;
	box-shadow: 0 0 0 1px #fff, 0 0 0 2px $highlight-color;
}

.media-selection .attachment.selection.details .thumbnail {
	box-shadow: 0 0 0 1px #fff, 0 0 0 3px $highlight-color;
}


/* Themes */

.theme-browser .theme.active .theme-name,
.theme-browser .theme.add-new-theme a:hover:after,
.theme-browser .theme.add-new-theme a:focus:after {
	background: $highlight-color;
}

.theme-browser .theme.add-new-theme a:hover span:after,
.theme-browser .theme.add-new-theme a:focus span:after {
	color: $highlight-color;
}

.theme-section.current,
.theme-filter.current {
	border-bottom-color: $menu-background;
}

body.more-filters-opened .more-filters {
	color: $menu-text;
	background-color: $menu-background;
}

body.more-filters-opened .more-filters:before {
	color: $menu-text;
}

body.more-filters-opened .more-filters:hover,
body.more-filters-opened .more-filters:focus {
	background-color: $menu-highlight-background;
	color: $menu-highlight-text;
}

body.more-filters-opened .more-filters:hover:before,
body.more-filters-opened .more-filters:focus:before {
	color: $menu-highlight-text;
}

/* Widgets */

.widgets-chooser li.widgets-chooser-selected {
	background-color: $menu-highlight-background;
	color: $menu-highlight-text;
}

.widgets-chooser li.widgets-chooser-selected:before,
.widgets-chooser li.widgets-chooser-selected:focus:before {
	color: $menu-highlight-text;
}


/* Nav Menus */

.nav-menus-php .item-edit:focus:before {
	box-shadow:
		0 0 0 1px lighten($button-color, 10),
		0 0 2px 1px $button-color;
}


/* Responsive Component */

div#wp-responsive-toggle a:before {
	color: $menu-icon;
}

.wp-responsive-open div#wp-responsive-toggle a {
	// ToDo: make inset border
	border-color: transparent;
	background: $menu-highlight-background;
}

.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a {
	background: $menu-submenu-background;
}

.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before {
	color: $menu-icon;
}

/* TinyMCE */

.mce-container.mce-menu .mce-menu-item:hover,
.mce-container.mce-menu .mce-menu-item.mce-selected,
.mce-container.mce-menu .mce-menu-item:focus,
.mce-container.mce-menu .mce-menu-item-normal.mce-active,
.mce-container.mce-menu .mce-menu-item-preview.mce-active {
	background: $highlight-color;
}

/* Customizer */
.wp-core-ui {
	#customize-controls .control-section:hover > .accordion-section-title,
	#customize-controls .control-section .accordion-section-title:hover,
	#customize-controls .control-section.open .accordion-section-title,
	#customize-controls .control-section .accordion-section-title:focus {
		color: $link;
		border-left-color: $button-color;
	}

	.customize-controls-close:focus,
	.customize-controls-close:hover,
	.customize-controls-preview-toggle:focus,
	.customize-controls-preview-toggle:hover {
		color: $link;
		border-top-color: $button-color;
	}

	.customize-panel-back:hover,
	.customize-panel-back:focus,
	.customize-section-back:hover,
	.customize-section-back:focus {
		color: $link;
		border-left-color: $button-color;
	}

	.customize-screen-options-toggle:hover,
	.customize-screen-options-toggle:active,
	.customize-screen-options-toggle:focus,
	.active-menu-screen-options .customize-screen-options-toggle,
	#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,
	#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,
	#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus {
		color: $link;
	}

	.customize-screen-options-toggle:focus:before,
	#customize-controls .customize-info .customize-help-toggle:focus:before,
	&.wp-customizer button:focus .toggle-indicator:before,
	.menu-item-bar .item-delete:focus:before,
	#available-menu-items .item-add:focus:before,
	#customize-save-button-wrapper .save:focus,
	#publish-settings:focus {
		box-shadow:
			0 0 0 1px lighten($button-color, 10),
			0 0 2px 1px $button-color;
	}

	#customize-controls .customize-info.open .customize-help-toggle,
	#customize-controls .customize-info .customize-help-toggle:focus,
	#customize-controls .customize-info .customize-help-toggle:hover {
		color: $link;
	}

	.control-panel-themes .customize-themes-section-title:focus,
	.control-panel-themes .customize-themes-section-title:hover {
		border-left-color: $button-color;
		color: $link;
	}

	.control-panel-themes .theme-section .customize-themes-section-title.selected:after {
		background: $button-color;
	}

	.control-panel-themes .customize-themes-section-title.selected {
		color: $link;
	}

	#customize-theme-controls .control-section:hover > .accordion-section-title:after,
	#customize-theme-controls .control-section .accordion-section-title:hover:after,
	#customize-theme-controls .control-section.open .accordion-section-title:after,
	#customize-theme-controls .control-section .accordion-section-title:focus:after,
	#customize-outer-theme-controls .control-section:hover > .accordion-section-title:after,
	#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,
	#customize-outer-theme-controls .control-section.open .accordion-section-title:after,
	#customize-outer-theme-controls .control-section .accordion-section-title:focus:after {
		color: $link;
	}

	.customize-control .attachment-media-view .button-add-media:focus {
		background-color: #fbfbfc;
		border-color: $button-color;
		border-style: solid;
		box-shadow: 0 0 0 1px $button-color;
		outline: 2px solid transparent;
	}

	.wp-full-overlay-footer .devices button:focus,
	.wp-full-overlay-footer .devices button.active:hover {
		border-bottom-color: $button-color;
	}

	.wp-full-overlay-footer .devices button:hover:before,
	.wp-full-overlay-footer .devices button:focus:before {
		color: $button-color;
	}

	.wp-full-overlay .collapse-sidebar:hover,
	.wp-full-overlay .collapse-sidebar:focus {
		color: $button-color;
	}

	.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,
	.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow {
		box-shadow:
			0 0 0 1px lighten($button-color, 10),
			0 0 2px 1px $button-color;
	}

	&.wp-customizer .theme-overlay .theme-header .close:focus,
	&.wp-customizer .theme-overlay .theme-header .close:hover,
	&.wp-customizer .theme-overlay .theme-header .right:focus,
	&.wp-customizer .theme-overlay .theme-header .right:hover,
	&.wp-customizer .theme-overlay .theme-header .left:focus,
	&.wp-customizer .theme-overlay .theme-header .left:hover {
		border-bottom-color: $button-color;
		color: $link;
	}
}
