@charset "UTF-8";

/* $Id: style.css,v 1.236 2025/06/10 20:58:23 wp_us7xtt Exp $ */

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    font-family: inherit; 
    font-size: 16px;
    margin: 0;
    overflow: hidden;
}

body {
    background-color: #bbccff;
}

ins {
    background-color: yellow;
    text-decoration: none;
}

del {
    text-decoration-line: line-through;
    text-decoration-thickness: 2px;
    text-decoration-color: rgba(255, 255, 255, 0.7);
    color: #666666;
    background-color: #ffbbbb;
    margin-right: 3px;
}

ins img {
    outline: 10px solid yellow;
}

del img {
    opacity: 0.5;
    outline: 10px solid #ffbbbb;
}

.editor_input_changed {
    background-color: #ffffaa;
}

#Region_edit {
    margin-left: 20px;
    padding-left: 3px;
    padding-right: 3px;
}

#LinksImages_edit:not(.editor_input_changed),
#Region_edit:not(.editor_input_changed) {
    display: none;
}

#details_preview.diff_dsbl del,
#details_preview.diff_dsbl .if_diff {
    display: none;
}

#details_preview.diff_dsbl ins {
    background-color: #bbccff;
}

#details_preview.diff_dsbl ins img {
    outline: none;
}

#main {
    width: 100%;
    font-family: Arial, Helvetica, sans-serif;
    background-color:#bbccff;
    position: fixed;
}

#main.mobile_phone {
    width: 475px;
    left: calc(50% - 237px);
}

#d_warning {
    position: absolute;
    top: 20px;
    left: calc(50% - 232px);
    z-index: 1000;
    width: 420px;
    height: auto;
    min-height: 45px;
    max-height: 75%;
    overflow: auto;
    border-radius: 5px;
    border: 2px solid black;
    background-color: #ffffaa;
    padding: 20px;
    outline: 4px dotted #aa0000;
}

#contact_title {
    font-weight: bold;
    font-style: italic;
    font-size: 1.5em;
}

#d_dismiss_warning {
    position: absolute;
    right: 0px;
    top: 0px;
    padding: 0px 6px 10px 10px;
    z-index: 1001;
    font-family: "bitstream vera sans", verdana, sans-serif;
    font-size: 22px;
    cursor: pointer;
}

#s_warning_text, #s_warning_html {
    font-family: arial, helvetica, sans-serif;
    font-size: 15px;
    white-space: pre-line;
    color: #aa0000
}

.forum_alert {
    color: blue;
}

#d_noscript {
    position: fixed;
    width: 100%;
    height: 100%;
    padding: 20px;
    background-color: #bbccff;
    z-index: 1000;
}

#main_table {
    position: fixed;
}

img {
	border: 0px;
}

#help, #weather, #info, #directions, #search, #track {
    overflow:auto;
}
#weather_img {
	height:60px;
	width:100%;
}

#dir_pfx {
  font-style: italic;
}

#dir_station {
  font-weight: bold;
}

#directions_hdr {
  font-weight: bold;
  font-size: 1em;
}

#directions_home {
    width: 320px;
}

#header {
	background-color: #c9d3dc;
	border: 1px solid #8899cc;
        padding: 0;
        margin: 0;
	font-weight: normal;
	font-size: 0.75em;
}

/* Hide header and footer */
#main.hide_h_f .h_f {
    display: none;
}

/* In datapane view, show only the selected tab; hide the retab button. */
#main:not([data-tab="help"]) #help,
#main:not([data-tab="info"]) #info,
#main:not([data-tab="directions"]) #directions,
#main:not([data-tab="search"]) #search,
#main:not([data-tab="track"]) #track,
#main:not([data-tab="weather"]) #weather,
#main:not([data-tab="tide"]):not(.map_view) #tide,
#main.help_show_hl_on_map #tide,
#main:not(.map_view) #d_retab {
    display: none;
}

/* Map view: hide header and footer, H/F control icon, all of the tabs except tide,
   and, if showing current vectors, all of the tide tab except the scrub controls  */
#main.map_view .h_f,
#main.map_view .hide_if_map_view,
#main.map_view:not(.help_show_hl_on_map) .content:not(#tide),
#main:not(.ofs).map_view:not(.curvec):not(.help_show_hl_on_map) .content {
    display: none;
}

#main.map_view #sidepane {
    position: fixed;
    right: 5px;
}

#main.mobile_phone.map_view #sidepane {
    right: calc(50% - 237px + 5px);
}

#main.map_view #datapane {
    border: 0;
    padding: 0;
}

#main.map_view .tide_heading {
    border-top: 0;
}

#main.map_view #datapane, #main.map_view #sidepane {
    height: min-content;
    width: 455px;
}

/* Disable pan of the page when the mobile device visual viewport is not zoomed. */
#main:not(.mobile_zoomed) {
    touch-action: pinch-zoom;
}
#main.mobile_zoomed {
    touch-action: pan-x pan-y pinch-zoom;
}

::placeholder {
    font-style: italic;
    color: rgba(0, 40, 200, 0.3);
}

.site-name {
	font-size: 2em;
	color: #ffffff;
	font-style: italic;
	font-weight: bold;
	padding: 5px;
        position: relative;
	line-height: 0.8em;
}
.site-name a:link, .site-name a:visited {
  color: #ffffff;
  text-decoration:none;
}
.site-name a:hover {
  text-decoration: underline;
  color: blue;
}

.icon_lbl_div {
    display: inline-block;
    text-align: left;
}

#main.magnified #s_zoom_in,
#main:not(.magnified) #i_no_magnify {
    display: none;
}

#main.shiftkey:not(.magnified) #b_zoom_in,
#main.shiftkey #b_zoom_out,
#main.magnified #b_zoom_out {
    visibility: hidden;
}

.small_zoom_button,
.small_zoom_div {
    position: relative;
    height: 25px;
    width:  25px;
    outline: 1px solid gray;
    outline-offset: -1px;
    background-color: white;
}

.small_zoom_button {
    bottom: -5px;
}

.small_zoom_div {
    display: inline-block;
    bottom: 1px;
}

.small_zoom_div span {
    position: relative;
    top: 3px;
    left: 6px;
    font-weight: bold;
}

#site-host {
    font-weight: normal;
    font-size: 1.5em;
}

#site-links {
    font-weight: normal;
    font-size: 0.75em;
}

#site-links a, #logged_in {
    margin-left: 20px;
}

#disclaimer {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.75em;
	font-style:oblique;
	color:#aa0000;
}

#bask_logo {
    float: left;
}

#disclaimer a:link, #disclaimer a:visited, .warning {
      color:#aa0000;
}

#disclaimer a:hover {
  text-decoration: underline;
  color: blue;
}

.reflink {
    text-decoration: underline;
    cursor: pointer;
}

.reflink:hover {
    color: blue;
}

.error {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1.1em;
	line-height: 1.5em;
	text-align:center;
	color:#aa0000;
}

.attn {
    color:#aa0000;
}

.tp_branch {
    color: yellow;
}

.mkr_img {
    position: relative;
    left: 14px;
    bottom: 7px;
    height: 12px;
    width:   7px;
    z-index: 2;
}

.icon_and_spinner {
    display: inline-block;
    position: relative;
}

#yourcoast_spinner {
    position: absolute;
    left: -10px;
    top: -10px;
}

#charts_spinner {
    position: absolute;
    left: 0px;
    top: -5px;
}

.yourcoast_photo {
    max-width: 400px;
}

.yc_sel_list span {
    color: #707070;
}

.yc_yes {
    color: #008000 !important;
    background-color: white;
}

.yc_no {
    color: #804040 !important;
    background-color: #ffeeee;
}

.sel_img {
    position: relative;
    bottom: 2px;
    right: -0.5px;
    height: 13px;
    width:  13px;
    z-index: 1;
}

.ba_wt_inline {
    position: relative;
    bottom: -2px;
}

table {
	background-color: #bbccff;
}

td {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.9em;
/*	line-height: 1em; */
	color: #222;
}

th {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.9em;
	line-height: 24px;
}

.title {
    font-family: Arial, Helvetica, sans-serif;
    text-align:center;
    font-size: 1.5em;
    font-weight: bold;	
    line-height: 20px;
    background-color: #8899cc;
    color: #000000;
}

.title:hover {
    background-color: #99aadd;
    cursor: pointer;
}

.subtitle {
   	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.9em;
	line-height: 18px;
	font-weight: bold;
	text-align:center;
	background-color: #8899cc;
	color: #000000;	
    border-top: 1px solid black;
    border-left: 1px solid black;
    border-right: 1px solid black;
}

#d_tide_compare_heading.subtitle {
	background-color: #a1b2e5;
    min-height: 53px;
}

#d_tide_compare_heading.subtitle .tc_txt {
    color: #505050;
    font-style: italic;
}

.mkr_sel {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.9em;
	line-height: 18px;
	font-weight: bold;
        position: relative;
        right: 6px;
}

#hide_h_f, #show_h_f {
    position: absolute;
    right: 12px;
    z-index: 100;
    font-family: "bitstream vera sans", verdana, sans-serif;
    font-size: 22px;
    border-radius: 3px;
}

#hide_h_f {
    top: 0px;
    padding: 0px 5px 10px 10px;
}

#show_h_f {
    bottom: 0px;
    padding: 10px 5px 0px 10px;
}

#hide_h_f:hover, #show_h_f:hover, #d_dismiss_warning:hover {
    color: blue;
    cursor: pointer;
    text-decoration: underline;
}

#main:not(.hide_h_f) #show_h_f,
#main.hide_h_f #hide_h_f {
    display: none;
}

#tide.hide_tg #b_hide_tg, #tide:not(.hide_tg) #b_show_tg,
#main.map_view #b_hide_tg, #main.map_view #b_show_tg {
    display: none;
}

#tide.hide_tg .tg, #main.map_view #d_graph_points_legend {
    display: none;
}

#d_hide_show_tg {
    z-index: 101;
    position: absolute;
    top: 1px;
    right: 0px;
    width: 28px;
    height: 18px;
    font-size: 1.5em;
    background-color: rgba(255,255,255,0.25);
    border-radius: 3px;
    text-align: center;
}

#d_hide_show_tg:hover {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
}

.markername:hover {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
}

a:hover {
    color: blue;
    text-decoration: underline;
}

.marine_head {
	font-weight: bold;
}
.marine_head a:link, .marine_head a:visited {
    font-size: 1.2em;
    color: #000000;
}

.marine_alert {
	color:#aa0000;
	font-weight:bold;
}

.nogo_warning {
	color:#aa0000;
	font-style:italic;
}

.tide_heading {
    position: relative;
}

.tide_heading_mkr {
    position: absolute;
    top: 1px;
    left: -5px;
}

#tide_top .tc_txt {
    display: inline-block;
    width: 400px;
}

#d_tide_heading.subtitle .tc_txt:hover,
#d_tide_compare_heading.subtitle .tc_txt:hover {
    color: blue;
}

.tide_legend {
    padding-left: 5px;
    padding-bottom: 7px;
    text-align: left;
    font-weight: normal;
    font-style: italic;
}

#main.add_compare .tide_legend {
    visibility: hidden;
}

.station_warning {
    font-style: italic;
}

.station_depth {
    white-space: nowrap;
}

.tide_heading_content {
    position: relative;
    width: calc(100% - 20px);
}

#tide_graph {
    height: 233px; /* The image from XTide has some stuff on the top (36px) and bottom (43px) that we mask out. */
    width: inherit;
    overflow: hidden;
    position: relative;
    top:0px;
    border-top:  solid rgb(0,0,0) 1px;
    border-right:  solid rgb(0,0,0) 1px;
    border-left:   solid rgb(0,0,0) 1px;
    background-color: #cbdcff;
    --tide_graph_scale_y: 1;
    --tide_graph_zero_y: 0;
    --tide_graph_scaled_zero_y: 0;
    --tide_graph_scaled_offset_y: 0;
}

#d_tide_graph_scaled {
    position: relative;
    height: 100%;
    width: 100%;
    z-index: 0;
}

.tide_graph_points_overlay {
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

#d_tide_graph_curvec_points_overlay {
    z-index: 30;
}

#d_tide_graph_obs_points_overlay {
    z-index: 40;
}

#d_tide_graph_ofs_points_overlay {
    z-index: 50;
}

#d_tide_graph_compare_points_overlay {
    z-index: 60;
}

.linegraph {
    fill: none;
    stroke-width: 1.5px;
}

#d_tide_graph_curvec_points_overlay .linegraph {
    stroke: red;
}

#d_tide_graph_obs_points_overlay .linegraph {
    stroke: blue;
}

#d_tide_graph_compare_points_overlay .linegraph {
    stroke: black;
}

#main:not(.vectors.curvec) #d_tide_graph_curvec_points_overlay,
#main:not(.vectors.curvec) #d_tide_graph_obs_points_overlay {
    display: none;
}

#d_tide_graph_dirs_overlay {
    pointer-events: none;
    position: absolute;
    top: var(--tide_graph_zero_y);
    left: 0;
    height: 1;     /* 0 works in Safari, not sure about other browsers */
    width: 100%;
    overflow: visible;

    /* For "?" */
    font-size: 12px;
    text-align: center;
    color: yellow;

    z-index: 90;
}

#tide.hide_tg #tide_graph, #main.map_view #tide_graph {
    height: 20px;
}

#main.map_view #tide {
    padding: 0;
    border-top: 1px solid black;
}

#tide_graph_overlay {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    cursor: grab;
    z-index: 10;
}

#tide:not(.hide_tg) #tide_graph.scaled #d_tide_img g.scaled {
    transform: translate(0, var(--tide_graph_scaled_offset_y)) scale(1, var(--tide_graph_scale_y));
}

#tide:not(.hide_tg) #tide_graph.scaled #tide_graph_x_axis {
    transform: translate(0, var(--tide_graph_scaled_offset_y));
}

#tide_graph.scaled #d_tide_graph_dirs_overlay {
    top: var(--tide_graph_scaled_zero_y);
}

#tide_graph.scaled #d_tide_img svg g.value_line,
#tide_graph.scaled #d_tide_img svg g.value_lbl,
#tide_graph:not(.scaled) #g_hgrid_line,
#tide_graph:not(.scaled) #g_hgrid_lbl {
    display: none;
}

#d_tide_img {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    height: 233px;
    width: inherit;
    margin:  0px 0px 0px 0px;
}

.svg_graph_point {
    stroke-width: 1.5px;
}

.svg_graph_arrow {
    stroke-width: 1px;
    fill: none;
}

#s_sine_char {
    font-size: 20px;
    padding-right: 8px;
}

#b_swap_compare {
    position: absolute;
    bottom: 2px;
    right: 4px;
    background-color: #bbccff;
    border: 1px solid black;
    border-radius: 2px;
    padding: 0;
    font-size: 18px;
}

#d_add_compare {
    position: absolute;
    top: -1px;
    right: 5px;
    font-size: 22px;
    font-style: normal;
    font-weight: 400;
    font-family: verdana;
    cursor: pointer;
}

#main.add_compare #b_swap_compare,
#tide.hide_tg #d_add_compare,
#tide:not([data-graph_days="1"]) #d_add_compare,
#tide:not([data-graph_days="1"]) #d_tide_compare_heading,
#tide.hide_tg #d_tide_compare_heading {
    display: none;
}

#d_dismiss_compare {
    position: absolute;
    top: 2px;
    right: 5px;
    font-size: 22px;
    font-style: normal;
    font-weight: 400;
    font-family: verdana;
    cursor: pointer;
}

#tide.is_subordinate .curvec_points .svg_graph_arrow {
    stroke: none;
}

.ofs_points {
    stroke: black;
}

.ofs_points .svg_graph_point {
    fill: yellow;
}

.curvec_points {
    stroke: #800000;
}

.curvec_points .svg_graph_point {
    fill: pink;
}

.obs_points {
    stroke: blue;
}

.obs_points .svg_graph_point {
    fill: cyan;
}

.compare_points {
    stroke: rgba(0,0,0,0);
}

.compare_points .svg_graph_point {
    fill: black;
}

#d_graph_points_legend {
    text-align: left;
    padding-left: 25px;
    border-top: 1px solid black;
}

#d_tide_img .spinner {
    position: relative;
    top: -55px;
}

#tide_cursor {
    z-index: 90;
    position: fixed;
    height: 233px;
    width: 100px;
    margin: 0;
    padding: 0;
    cursor: grab;
}

#main.scrubbing #tide_cursor {
    top: 0 !important;
    height: 100vh !important;
}

#main.scrubbing #tide_cursor,
#main.scrubbing #tide_cursor_line {
    cursor: grabbing;
}

#tide_cursor_line {
    height: 100%;
    background-color: #aa0000;
    position: absolute;
    width: 2px;
    border: 0;
    margin: 0;
    left: 0px;
    cursor: grab;
    z-index: 80;
}

#ofs_cursor {
    height: 100%;
    background-color: #808000;
    opacity: .7;
    position: absolute;
    width: 6px;
    border: 0;
    margin: 0;
    left: 0px;
    z-index: 75;
}

#main:not(.ofs) #ofs_cursor,
#main.loading_ofs #ofs_cursor,
#main.loading_ofs #s_ofsdata {
    display: none;
}

#main:not(.ofs) #ofs_cursor {
    display: none;
}

#main.scrubbing #tide_cursor_line {
    background-color: #ff0000;
}

#main.scrubbing {
    user-select: none;
    -webkit-user-select: none;
}

.noselect {
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

#d_tide_wday {
    position: relative;
    color: #666600;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

#d_tide_wday div {
    background-color: rgba(255,255,255,0.25);
    border-radius: 3px;
}

#tide:not(.is_current) #d_tide_wday {
    color: black;
}

#d_tide_wday > div {
    position: absolute;
    bottom: 0px;
    width: 30px;
    z-index: 3;
    text-align: center;
}

#d_depth_warning {
    color: #aa0000;
    font-style: italic;
    font-weight: normal;
    width: 100%;
    border-top: 1px solid black;
}

#s_depth {
    font-weight: bold;
}

#main.map_view #d_depth_warning,
#tide:not(.is_current) #d_depth_warning {
    display: none;
}

#d_tide_clock, #tide_buttons {
 /*    width: 465px; */
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.75em;
    background-color: #cbdcff;
    font-family: Arial, Helvetica, sans-serif;
    text-align: center;
}

#d_tide_clock_legend hr {
    margin: 0;
}

#main.mobile_phone #tide_buttons {
    font-size: 18px;
    line-height: 24px;
}

#main.mobile_phone #tb_bar, #main:not(.mobile_phone) #tb_br {
    display: none;
}

#d_tide_clock {
    line-height: 15px;
    padding-top: 3px;
    width: calc(100% - 2px);
    border: 1px solid black;
}

#d_tide_clock_data, #d_tide_clock_obsdata,  #d_tide_clock_ofsdata  {
    position: relative;
    font-weight: bold;
    font-size: 1.3em;
    height: 15px;
}

#d_tide_clock_ofsdata.w_note {
    height: 30px;
}

#d_tide_clock_data {
    color: #aa0000;
}

#d_curvec_error {
    color: #aa0000;
    font-weight: bold;
    text-align: left;
    padding: 0 5px 0 15px;
}

#main.curvec #tide_clock_hint,
#main:not(.curvec) #curvec_data,
#main:not(.curvec) #d_tide_clock_obsdata,
#main:not(.curvec) #d_curvec_error,
#main:not(.curvec.vectors) #d_vector_scale,
#main:not(.curvec.vectors) #d_curvec_legend,
#main:not(.curvec.vectors.observed) #d_obs_legend,
#main:not(.ofs_current) #d_ofs_legend,
#main:not(.ofs_current) #d_tide_clock_ofsdata,
#main:not(.ofs_current) #d_tide_graph_ofs_points_overlay,
#tide.ofs_iw_dragging #d_ofs_legend,
#tide.ofs_iw_dragging #d_tide_clock_ofsdata,
#tide.ofs_iw_dragging #d_tide_graph_ofs_points_overlay,
#tide:not(.is_current) #d_ofs_legend,
#tide:not(.is_current) #d_tide_clock_ofsdata,
#main:not(.tide_compare) #d_tide_graph_compare_points_overlay,
#main:not(.tide_compare) #d_compare_legend,
#main:not(.tide_compare) #d_tide_clock_comparedata,
#main:not(.tide_compare):not(.ofs.w_xtide):not(.curvec.vectors) #d_graph_points_legend,
#tide:not([data-graph_days="1"]) #d_graph_points_legend {
    display: none;
}

#tide_clock_hint {
    font-size: 0.75em;
    color: gray;
}

#vector_kt_100px {
    margin-left: 5px;
    background-color: #dce6ff;
}

#d_vector_scale_sub {
    height: 10px;
    position: relative;
    font-size: 10px;
    left: 130px;
    top: -5px;
    width: 25px;
    margin-bottom: -10px;
}

.arrow_svg {
    position: relative;
    top: 2px;
}

#d_vector_scale[data-kts=".5"] #tick_zh,
#d_vector_scale[data-kts="3"] #tick_1h,
#d_vector_scale[data-kts="6"] #tick_2,
#d_vector_scale[data-kts="3"] #tick_3,
#d_vector_scale[data-kts="3"] #tick_3h,
#d_vector_scale[data-kts="6"] #tick_3,
#d_vector_scale[data-kts="6"] #tick_6 {
    opacity: 1;
}

#d_vector_scale[data-kts=".5"] #tick_z {
    opacity: 0;
}

#d_vector_scale {
    line-height: 12px;
    text-align: left;
    padding: 2px 0 2px 25px;
    border-top: 1px solid black;
}

#d_arrow_legend {
    position: relative;
}

#s_subord_descr {
    position: relative;
    bottom: 2px;
}

.tide_row td {
    vertical-align: middle;
}

.tide_row td:nth-last-child(4) {
    vertical-align: top;
}

.tide_row td:nth-last-child(1) {
    text-align: center;
    height: 0;
    min-height: 20px;
}

.tide_row td:nth-last-child(2) {
    text-align: right;
}

.tide_row td:nth-last-child(3) {
    text-align: right;
    padding-left: 4px;   /* Make room for #tide_table_cursor */
}

.tide_row_bottom {
    border: 0;
    margin: 0;
    padding: 0;
}

#tide_clock_date, #tide_clock_time, #curvec_data, #tide_clock_hint,
#curvec_obsdata, #obslbl, 
#s_ofsdata, #s_ofs_predtime, #s_ofslbl, #s_ofs_note {
    position: absolute;
}

#curvec_data, #curvec_obsdata, #s_ofsdata, #tide_clock_hint {
    right: 5px;
}

#s_ofs_note {
    bottom: 0;
    left: 60px;
    color: #aa0000;
    font-size: 0.75em;
    font-weight: normal;
    font-style: italic;
}

#d_tide_clock_obsdata {
    color: blue;
}

#d_tide_clock_ofsdata {
    color: black;
}

#d_tide_clock_ofsdata #s_ofs_predtime {
    color: #808000;
}

#tide {
    overflow-x: hidden;
}

#tide_clock_time, #s_ofs_predtime {
    right: 195px;
}

#tide_clock_date, #obslbl, #s_ofslbl {
    left: 5px;
}

#main:not(.observed) #d_tide_clock_obsdata {
    display: none;
}

#tide_buttons {
    line-height: 18px;
    font-weight: normal;
    color: black;
    border-top: 1px solid black;
    border-left: 1px solid black;
    border-right: 1px solid black;
}

#main.map_view #tide_buttons {
    border-bottom: 1px solid black;
}

#d_tide_hdr, #d_tide_links, #d_tide_dirs {
    background-color: #cbdcff;
    border: 1px solid #000000;
    border-top: 0px;
    padding-left: 5px;
    padding-right: 5px;
    padding-top: 2px;
    padding-bottom: 2px;
    line-height: 12px;
    font-size: 0.75em;
    text-decoration: none;
}

#d_tide_dirs {
    position: relative;
    height: 14px;   /* Room for 14px arrows */
    text-align: center;
    padding-bottom: 5px;
    padding-top: 0px;
}

#d_tide_dirs svg {
    position: relative;
    bottom: -3px;
}

.tide_graph_dir {
    stroke: white;
    fill: none;
}

.mean_flood,
.mean_flood_div .tide_graph_dir {
    transform: rotate(var(--flood_dir));
    transform-origin: 7px 7px;
}

.mean_ebb,
.mean_ebb_div .tide_graph_dir {
    transform: rotate(var(--ebb_dir));
    transform-origin: 7px 7px;
}

.mean_ebb_div {
    width: 14px;
    height: 14px;
    top: 7px;
}

.mean_flood_div {
    width: 14px;
    height: 14px;
    bottom: 8px;    /* parent div is 1px high */
}

#tide:not(.is_current) #d_tide_dirs {
    display: none;
}

#s_ebb_dir, #s_flood_dir {
    color: white;
    padding: 2px 2px 2px 4px;
}

#d_tide_dirs > span {
    position: relative;
    bottom: 1px;
}

#s_ebb_dir svg, #s_flood_dir svg {
    stroke: white;
}

#s_ebb_dir {
    background-color: #00a070;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
}

#s_flood_dir {
    background-color: #6688cc;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

#d_tide_hdr a, #d_tide_links a {
    color: black;
    text-decoration: none;
}

#d_tide_hdr a:hover, #d_tide_links a:hover {
    text-decoration: underline;
    color: blue;
    cursor: pointer;
}

#d_tide_links {
    text-align: center;
}

#tide_wx_alert {
    color: #aa0000;
    white-space: pre-line;
}

.test {
	overflow:auto;
}

.subordinate_li {
    list-style-image: url(icons/tide_current-tiny.png);
}

.tide_li {
    list-style-image: url(icons/tide-tiny.png);
}

.current_li {
    list-style-image: url(icons/current-tiny.png);
}

.launch_li {
    list-style-image: url(icons/launch-tiny.png);
}

.meeting_li {
    list-style-image: url(icons/meeting-tiny.png);
}

.destination_li {
    list-style-image: url(icons/destination-tiny.png);
}

.yourcoast_li {
    list-style-image: url(icons/yourcoast-tiny.png);
}

.ba_wt_li {
    list-style-image: url(icons/ba_wt-tiny.png);
}

.vectors_li {
    list-style-image: url(icons/vectors-tiny.png);
}

.nogo_li {
    list-style-image: url(icons/nogo-tiny.png);
}

#tide_bottom {
    position: relative;
    overflow:auto;
    height: min-content;
    border-top: 1px solid black;
}

#tide_list {
    position: relative;
    font-size:1.3em;
    overflow: hidden;
}

#tide_table_cursor {
    background-color: #aa0000;
    font-size: 30px;
    font-weight: bold;
    position: absolute;
    width: 10px;
    height: 4px;
    opacity: .5;
}

#tide_table_cursor_pad {
    width: 10px;
    height: 30px;
    position: absolute;
    top: -13px;
    opacity: 0;
}

.tide_table, .ts_table, .details_table {
    margin:  0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    border: 1px solid black;
    border-collapse: collapse;
}

.tide_table, .details_table {
    background-color: #cbdcff;
}

.tide_table {
    border-style: hidden solid solid solid;
}

#search_params_name {
    width: 430px;
    margin: 5px;
    line-height: 1.7em;
}

#search_text {
    width: 100%;
}

#search_text[data-autocomplete_at]::selection {
    background-color: iniitial;
}

/* Workaround for ::selection not yet supported: this makes the drag handles transparent (iOS) */
#search_text.touched[data-autocomplete_at] {
    caret-color: rgba(0,80,255,0);
}

.search_suggestion {
    padding: 5px;
    background-color: #dce6ff;
    font-style: italic;
}

#d_search_suggestion a {
    display: inline-block;
    margin: 10px 35px 10px 10px;
    padding: 3px;
    font-style: normal;
    font-weight: bold;
    background-color: white;
}

#ts_dl {
    margin-left: 5px;
}

.ts_table {
    border-style: solid;
    background-color: #dce6ff;
    width: 440px;
    line-height: normal;
}

.ts_table td.ts_1st {
    border-bottom: none;
}

.ts_table td.ts_2nd {
    background-color: white;
    border-top: none;
}

.ts_table td {
    font-size: 1em;
}

.ts_table tr:nth-child(1) td {
    padding-top: 5px;
    padding-bottom: 5px;
}

.tide_table td, .ts_table td, .details_table td {
    border: 1px solid #000000;
    margin: 0px;
    padding: 0px 2px 0px 2px;
}

.ts_table td {
    padding-right: 5px;
}

.tide_table td {
   font-size: 0.625em;
}

.details_table {
    width: 100%;
}

.details_table td {
   font-size: 0.8em;
}

.tide_table td {
    white-space: nowrap;
}

.tide_col1 {
    position: relative;
    text-align: center;
    max-width: 195px;
}

#ttable {
    width: 100%;
}

.tide_wx_warn {
    position: absolute;
    top: 52px;
    left: 8px;
    height: 16px;
    z-index: 10;
}

.tc_subord_warn {
    height: 12px;
    position: relative;
    bottom: -2px;
    cursor: pointer;
}

#tide .tide_col1:not(.day_has_alert) .tide_wx_warn {
    display: none;
}

#forecast {
	font-size:1em;
}

#weather_block {
	font-size:1em;
    height: 40px;
    margin-bottom: 10px;
    background-color: #cbdcff;
    padding: 5px;
    border: 1px solid black;
}

#wx_links_left {
    float: left;
}

#wx_links_right {
    text-align: right;
    float: right;
}

#map_app {
	display: block;
    border: 0;
    padding: 0;
    margin: 0;
    position: relative;
}

#map_box {
    position: absolute;
    width: calc(100% - 475px);    /* 100% - sidepane width */
    border:#fc0 solid 2px;
}

#main.loading #map_app {
    opacity: 0;
}

#d_loading {
    position: fixed;
    height: 120px;
    width: 300px;
    top: calc(50% - 60px);
    left: calc(50% - 150px);
    font-size: 20pt;
    font-style: italic;
    text-align: center;
    z-index: 2000;
}

#d_loading img {
    margin-top: 15px;
}

#main:not(.loading) #d_loading {
    display: none;
}

#map_box_scaled {
    position: absolute;
    transform-origin: top left;
    transform: scale(1.0);
}

#main.map_view #map_box {
    width: 100%;
    border: 0;
}

#main.mobile_phone #map_box {
    border: 0;
}

#main.mobile_phone:not(.map_view) #sidepane {
    right: 1px;
}

#map {
	margin: 0;
	padding: 0;
	height: 100%;
	width: 100%;
}

#d_traffic {
    position: relative;
    padding-left: 10px;
    padding-top: 3px;
    padding-bottom: 7px;
}

#main.magnified .hide_if_magnified {
    display: none;
}

#b_traffic {
    font-size: 18px;
    padding: 5px 9px;
}

/* Empty div inside #d_traffic, used only for its data-help_show outline */
#d_maptype {
    position: absolute;
    top: -47px;
    height: 37px;
    width: 69px;
    padding: 0;
}

/* Empty div inside #d_traffic, used only for its data-help_show outline */
#d_streetview {
    position: absolute;
    top: -107px;
    height: 37px;
    width: 37px;
    padding: 0;
}

/* Empty div inside #map_box, used only for its data-help_show outline */
#d_google_link {
    position: absolute;
    bottom: 5px;
    left: 10px;
    height: 20px;
    width: 60px;
    padding: 0;
}

/* Empty div inside #map_box, used only for its data-help_show outline */
#d_map_legend {
    position: absolute;
    bottom: 0;
    right: 0;
    height: 15px;
    width: 460px;
    padding: 0;
}

/* Empty div inside #map_box, used only for its data-help_show outline */
#d_pushpin {
    position: absolute;
    top: calc(50% - 20px);
    left: calc(50% - 10px);
    height: 30px;
    width: 20px;
    padding: 0;
}

#main:not(.help_show_hl) #d_maptype,
#main:not(.help_show_hl) #d_streetview,
#main:not(.help_show_hl) #d_google_link,
#main:not(.help_show_hl) #d_map_legend,
#main:not(.help_show_hl) #d_pushpin {
    display: none;
}

#main[data-maptype="satellite"] #b_traffic,
#main[data-maptype="topo"]      #b_traffic,
#main[data-maptype="nautical"]  #b_traffic,
#main[data-maptype="ENC"]       #b_traffic {
    display: none;
}

.map_control_button {
    text-align: center;
    font-family: Roboto, Arial,sans-serif;
    font-weight: 500;
    color: black;
    background-color: white;
    box-shadow: 0 1px 3px rgba(0,0,0, 0.15);
    border: 0;
    padding: 0;
    border-radius: 2px;
    cursor: pointer;
}

.map_control_button.at_limit img {
    opacity: 0.3;
}

.map_control_button.at_limit {
    color: gray;
}

.map_control_button:not(.at_limit):hover {
    background-color: #eeeeee;
}

.map_control_button:not(.at_limit):active,
.map_control_button.changed {
    color: black;
    background-color: #bbccff;
}

#main.show_traffic #b_traffic {
    background-color: #bbccff;
}

@media screen and ( max-width: 640px ) {
    #main:not(.map_view) #map_key_container, #main:not(.map_view) #map_box {
        display: none;
    }
}

#map_key_container {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 5px 2px 0px 2px;  /* T R B L */
    text-align: center;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

.map_key {
    font-size: 10px;
    white-space: nowrap;
    width: auto;
    display: inline-block;
}

.map_key:hover {
    text-decoration: underline;
    cursor: pointer;
}

#main.mobile_phone:not(.map_view) #map_key_container {
    display: none;
}

#main.mobile_phone .map_key {
    font-size: 1em;
    padding: 2px;
    margin: 2px;
    width: 105px;
    text-align: left;
}

#main.mobile_phone #d_ofs_key {
    width: 218px;
    padding: 0px;
    margin: 0px;
}

#map_key_container[data-only="app_rej"] #d_app_rej_key,
#map_key_container[data-only="pend_mine"] #d_pend_mine_key,
#map_key_container[data-only="pend_all"] #d_pend_all_key,
#map_key_container[data-only="has_forum"] #d_has_forum_key,
#map_key_container[data-only="tide"] #d_tide_key,
#map_key_container[data-only="current"] #d_current_key,
#map_key_container[data-only="ofs"] #d_ofs_key,
#map_key_container[data-only="vectors"] #d_vectors_key,
#map_key_container[data-only="launch"] #d_launch_key,
#map_key_container[data-only="destination"] #d_destination_key,
#map_key_container[data-only="meeting"] #d_meeting_key,
#map_key_container[data-only="yourcoast"] #d_yourcoast_key,
#map_key_container[data-only="nogo"] #d_nogo_key,
#map_key_container[data-only="ba_wt"] #d_ba_wt_key,
#map_key_container[data-only="chart"] #d_chart_key {
    outline: 1px solid blue;
    outline-offset: 2px;
}

#d_ofs_current_key, #d_ofs_wind_key {
    display: inline-block;
}

.marker {
    position: relative;
    top: 4px;
}

#main.add_compare .marker.tide_marker,
#main.add_compare .marker.current_marker,
#main.add_compare .tide_heading {
    cursor: copy;
}

.tide_heading select {
    cursor: pointer;
}

#main.add_compare .marker:not(.current_marker):not(.tide_marker) {
    cursor: not-allowed;
}

#main.add_compare #d_tide_compare_heading .tide_heading_content,
#main:not(.add_compare) #d_tide_compare_heading .tide_heading_prompt,
#main:not(.tide_compare):not(.add_compare) #d_tide_compare_heading {
    display: none;
}

#main.tide_compare #d_tide_img svg g.scaled {
    opacity: 0.8;
}

#d_tide_compare_heading .tide_heading_prompt {
    font-style: italic;
}

.alt_depth {
    width: 1px;
    height: 23px;
    pointer-events: none;
}

.marker_halo {
    position: relative;
    top: 13px;
    pointer-events: none;
    transform: scale(1.3);
}

.subordinate_marker {
    opacity: 0.5;
}

#track_autodel {
    position: relative;
    top: 12px;
    left: 1px;
    opacity: 0.75;
    pointer-events: none;
}

#i_vertex_marker {
    position: relative;
    top: 12px;
}

#main.noclick_markers .marker {
    pointer-events: none;
}

#main:not(.map_view) #sidepane {
    position: absolute;
    top: 0px;
    right: 0px;
    width: 473px;
}

#datapane {
	height: calc(100% - 30px);   /* Subtract tabmenu height */
	width:  465px;
	float: right;
	padding-left: 2px;
	padding-right: 2px;
	border:#FC0 solid 2px;
	overflow:auto;
}

/* Always use the full width for the tide graph - scroll #tide_bottom if necessary.
   Scrollbar in #datapane would make OFS points plot at the wrong X scale. */
#main[data-tab="tide"] #datapane {
    overflow: hidden;
}

/* Always show the vertical scrollbar, so scroll_datapane_elem() works */
#main[data-tab="help"] #datapane {
    overflow-y: scroll;
}

#main.mobile_phone:not(.map_view) #datapane {
    height: calc(100% - 60px);   /* Subtract tabmenu height */
}

#d_zoom {
    display: grid;
    margin: 0x;
    padding: 10px;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows:    1fr 1fr;
    gap: 2px;
    transform-origin: top left;
    z-index: 2000;
}

#d_zoom button {
    height: 40px;
    width: 40px;
    font-size: 32px;
}

#tabmenu {
    height: 28px;  /* Not sure why we need 28 here.  The height is 30 */
    margin: 3px;
}

#main.mobile_phone #tabmenu {
    height: 60px;
}

#g_tab_buttons {
    display: grid;
    margin: 0 5px;
    padding: 0;
}

#g_tab_buttons {
    grid-template-columns: repeat(10, 1fr) 2fr;
}

#main.mobile_phone #g_tab_buttons {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows:    1fr 1fr 1fr;
}

#main.mobile_phone #tide_tab,
#main.mobile_phone #info_tab,
#main.mobile_phone #search_tab,
#main.mobile_phone #map_view {
    grid-row: 1;
}

#g_tab_buttons button {
    position: relative;
    margin: 2px;
    padding: 2px 2px 0 0;
}

#main.mobile_phone #g_tab_buttons button span {
    position: relative;
    bottom: 2px;
}

#main.mobile_phone #g_tab_buttons button {
    height: 26px;
    font-size: 1.2em;
}

.tab_buttons {
    color: black;
}

.tab_buttons button, .active li li.active, .edit_button, .edit_add_button, .top_button {
	color: #000000;
	background: #8899cc;
	font: bold 14px "Trebuchet MS", Arial, sans-serif;
	border: 2px solid #8899cc;
	text-decoration: none;
}

#details button:not(.edit_add_button), #d_warning button {
	color: #000000;
	background: #d8e4ff;
	font: 12px "Trebuchet MS", Arial, sans-serif;
	border: 2px solid #8899cc;
	text-decoration: none;
}

#details button:active:not(.edit_add_button), #d_warning button:active {
     color: blue;
     background: #8899cc;
}

.edit_button, .edit_add_button {
    margin: 0;
    padding: 2px 2px 0px 0px;
}

.tab_buttons button:hover, .edit_button:hover, .edit_add_button:hover {
    cursor: pointer;
}

.tab_buttons .active, #b_retab {
    background-color: #bbccff;
}

.tab_buttons button:active, #b_retab:active {
    color: blue;
}

.tab_buttons button:hover:not(.active), .edit_button:hover:not(.active), .edit_add_button:hover:not(.active) {
    background: #a1b2e3;
}

.tab_buttons button:disabled {
    cursor: not-allowed;
    color: #777777;
    background-color: #a8b8d0;
    border: 2px solid #8899cc;
}

.edit_button, .edit_add_button {
    border: 1px solid black;
    cursor: pointer;
}

.edit_add_button {
    float: right;
}

#details_cursor_radius {
    width: 
}

.edit_button {
    font-size: 1em;
    width: 14px;
    text-align: center;
    display: inline-block;
    padding: 0px;
}

#details_warnings {
    margin: 15px 5px 5px 5px;
    white-space: pre-line;
    color: #aa0000;
}

#details_tab,
#details_preview {
    overflow-x: hidden;
}


#main.details_editor #details_tab,
#main.details_editor #details_warnings {
    display: none;
}

#main.details_editor.editor_preview #details_input,
#main.details_editor:not(.editor_preview) #details_preview,
#main.details_editor.editing #b_details_exit,
#main.details_editor:not(.editing) #b_details_cancel {
    display: none;
}

#b_details_cancel, #b_details_exit {
    width: 52px;
}

#details_editor ul {
    margin-top: 10px;
}

#details_editor:not(.coords_from_inputs) #s_coords_from_input,
#details_editor:not(.coords_from_inputs) #b_details_move_marker,
#details_editor:not(.coords_from_inputs) #b_details_move_vertex,
#details_editor:not(.coords_from_inputs) #b_details_define_region,
#details_editor:not(.adding_region) #b_details_define_region {
    display: none;
}

#d_distance_guide {
    margin-top: 10px;
}

#s_coords_from_input, #details_editor.coords_from_inputs #latlng_edit {
    background-color: #ffffaa;
}

#latlng_edit {
    width: 330px;
}

.status_msg {
    color: blue;
    border: 1px solid blue;
    background-color: #ccddff;
    font-size: 0.8em;
    font-style: italic;
    padding-left: 5px;
    padding-right: 5px;
    white-space: pre-line;
}

#details_status {
    margin-top: 10px;
    padding: 5px;
    width: 430px;
}

#details_status.details_status_err {
    color: red;
    border: 1px solid red;
    background-color: yellow;
}

#g_details a {
    text-decoration: none;
}

#g_details button {
    padding: 2px;
}

#d_vertex_info_window {
    font-weight: bold;
    color: #aa0000;
    background-color: #ffff00;
    padding: 5px;
    border: 3px solid black;
}

#main:not(.details_editor) #g_details,
#main:not(.details_editor) #details_editor,
#main.details_editor #g_tab_buttons,
#main:not(.details_editor) .editor_key {
    display: none;
}

#details_editor:not(.edit_nogo) .nogo_ctrls {
    display: none;
}

#details_input {
    width: 442px;
}

.details_textarea, #Title_edit, #Chart_Title_edit, #details_progress_bar {
    width: 438px;
}

#Title_edit {
    font-weight: bold;
}

.details_textarea {
    resize: vertical;
}

.details_list {
    margin: 0px;
    padding: 0px;
    border-collapse: collapse;
    font-size: 1.2em;
    width: 442px;
}

.details_text, .details_img {
    border: 0px;
    padding: 0px;
}

.details_text {
    width: 400px;
}

.details_img {
    max-width: 400px;
    height: auto;
    background-color: gray;
}

.details_caption {
    font-size: 0.8em;
    font-style: italic;
}

.details_list input:invalid {
    color: red;
}

.details_list tr:nth-child(odd) {
    border-bottom: 1px solid black;
}

.details_list tr:nth-child(even) td {
    padding-top: 5px;
}

.details_list tr:nth-child(2n+3) td {
    padding-bottom: 5px;
}

.details_list tr:nth-child(n+2) {
    border-left: 1px solid black;
    border-right: 1px solid black;
}

.details_list td {
    vertical-align: bottom;
}

.details_link:hover {
    text-decoration: underline;
    cursor: pointer;
    color: blue;
}

#details_progress_lbl {
    font-size: .75em;
    font-style: italic;
}

#Type_edit, #details_img_files {
    cursor: pointer;
}

#img_zoom {
    position: fixed;
    top: 0;
    left: 0;
    background-color: black;
    height: 100%;
    width: 100%;
    z-index: 100;
}

#zoomed_img {
    z-index: 101;
}

#zoomed_x {
    z-index: 102;
    position: absolute;
    top: 0px;
    right: 0px;
    padding: 10px;
    color: white;
    font-size: 24pt;
}

.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#editor_title {
    margin: 0;
    width: 100%;
    text-align: center;
    font-size: 120%;
    font-weight: bold;
}

#img_zoom:hover, #zoomed_img:hover {
    cursor: zoom-out;
}

.zoomable:hover {
    cursor: zoom-in;
}

.hidden {
    visibility: hidden;
}

.nodisplay {
    display: none !important;
}

.nobr {
    white-space: nowrap;
}

.mod_date {
    font-weight: bold;
    white-space: nowrap;
}

.modtime {
    font-style: italic;
    font-size: 0.8em;
    line-height: 140%;
}

#station_name {
    position: relative;
}

.content {
	font: 0.9em/1.3em "bitstream vera sans", verdana, sans-serif;
	padding: 5px;
	border-top: none;
	position:relative;
	z-index: 2;
}

.content a {
    color: black;
}

.content a:hover { 
	text-decoration:underline;
        color: blue
}

.search_item {
    cursor: pointer;
}

#search_results {
	font-size: 1em;
}

#search_results ul {
    list-style-type: none;
}

.srchmatch {
    background-color: white;
}

.srchmatch .srchmatch_wild:not(.between_wds) {
    background-color: #dce6ff;
}

.srchmatch .srchmatch_wild.between_wds {
    background-color: #bbccff;
}

#search_results a:link, #search_results a:visited {
    color: #000000;
    text-decoration: none;
}

#search_results a:hover {
    text-decoration: underline;
    color: blue;
}

.track_table {
    width: 440px;
    margin:  0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    border: 1px #000000;
    border-collapse: collapse;
    border-style: solid solid solid solid;
    background-color: #cbdcff;
}

.track_table td, .track_table th {
    border: 1px solid #000000;
    margin: 0px 0px 0px 0px;
    padding: 3px 3px 3px 3px;
    white-space: nowrap;
}

.track_table td {
    font-size: 1.2em;
    text-align: center;
}

.track_table th {
    font-size: 0.8em;
    line-height: normal;
    text-align: center;
}

.track_table th:nth-child(1) {
    width: 55px;
}

.track_table th:nth-last-child(1) {
    width: 80px;
}

#i_add_latlng {
    width: 310px;
    background-color: #e8f4ff;
}

#b_add_geoloc {
    font-size: 0.7em;
}

.moon_icon:hover {
    cursor: pointer;
}

.ttwx {
    margin: 3px 0px 0px 0px;
    padding: 3px 3px 3px 3px;
    font-size: 1em;
    line-height: 1.1em;
    text-align: left;
    white-space: normal;
}

.ttwx:hover {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
}

.cal_entry {
    margin: 3px 0px 0px 0px;
    padding: 0px 3px 0px 0px;
    font-size: 1em;
    line-height: 12px;
    font-weight: bold;
    text-align: left;
    white-space: normal;
}
.cal_entry ul {
    margin-left: 18px;
    margin-bottom: 0px;
    padding-bottom: 0px;
    padding-left: 0px;
}

.cal_entry a:link, .cal_entry a:visited {
    color: black;
    text-decoration: none;
}

.cal_entry a:hover {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
}

.tide_date {
    font-weight: bold;
    font-size: 1em;
}

.tide_col_day:hover, .tide_col_night:hover {
    color: #660000;
    cursor: pointer;
}

.tide_col_day.hl, .tide_col_night.hl, .tide_col_ebb.hl, .tide_col_flood.hl {
    color: #aa0000;
}

.tide_col_day:not(.hltd) {
    background-color: #ffffff;
}

.tide_col_day.hltd {
    background-color: #ffffcc;
}

.tide_col_night:not(.hltd) {
    background-color: #d5d8dd;
}

.tide_col_night.hltd {
    background-color: #ddddaa;
}

.tide_col_ebb {
    background-color: #afe1d2;
}

.tide_col_flood {
    background-color: #c6d8ff;
}

.about_col1 {
    text-align: center;
    font-weight: bold;
    white-space: nowrap;
}

.about_line1 {
    font-weight: bold;
}

.legacy_source td, .legacy_source a:link, .legacy_source a:visited {
    color:#aa0000;
}

.sun_moon {
    background-color: #dce6ff;
    border: 1px solid gray;
    color: #000000;
    font-weight: normal;
    margin-top: 3px;
    text-align: right;
    margin-left: auto;
    margin-right: auto;
    width: 0%;
}

.sun_moon th {
    font-style: italic;
    text-align: center;
    font-size:  0.75em;
    line-height: 8px;
    font-weight: normal;
    color: #606060;
}

.sun_moon td {
    border: 0px;
    text-align: right;
    font-size: 0.75em;
    line-height: 8px;
    font-weight: normal;
}

.sun_moon_col {
    color: #000000;
}

th.sun_moon_col {
    text-align: center;
    color: #000000;
    font-weight: bold;
    font-style: normal;
    font-size: 0.625em;
}

.sun_moon_col.hl {
    color: #aa0000;
}

td.sun_moon_col:hover {
    color: #660000;
    cursor: pointer;
}

.tide_date_row {
    border-top: 2px solid #000000;
}

.tide_button {
    font-weight: bold;
}

.tide_button:hover, .tide_button_off:hover {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
}

.tide_button_off {
    color: #666666;
}

.calendar {
    z-index: 10;
}

.iw_link:hover {
    cursor:pointer;
    color: blue;
}

/* info window */
.iw {
    font-size: 0.75em;
    width: 190px;
    padding: 0;
    margin: 0;
}

.iw a {
    color: blue;
    font-weight: bold;
}

#d_chart_iw {
    text-align: center;
    cursor: default;
    user-select: none;
    -webkit-user-select: none;
}

#d_chart_iw span {
    font-weight: bold;
}

#d_chart_iw button {
    margin-top: 5px;
    background-color: #dddddd;
}

#d_chart_iw:not(.with_buttons) #d_chart_buttons {
    display: none;
}

#main {
    --circle-bgcolor: #9cc0f9;
    --current-color: blue;
    --wind-color: white;
    --pointer-color: #880000;
    --help_hl-color: #ffffd0;
    --help_tgt-color: #c3ffc6;
}

#main[data-maptype="satellite"],
#main[data-maptype="hybrid"] {
    --circle-bgcolor: #374e40;
    --current-color: cyan;
    --pointer-color: magenta;
}

#main[data-maptype="topo"] {
    --circle-bgcolor: #cbe7ff;
    --wind-color: magenta;
}

#main[data-maptype="nautical"] {
    --circle-bgcolor: #d1deef;
    --wind-color: magenta;
}

#main[data-maptype="ENC"] {
    --circle-bgcolor: #82bdff;
}

#d_ofs_iw {
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    position: absolute;
    height: 10px;
    width: 180px;
    cursor: grab;
}

#d_ofs_iw a {
    color: blue;
    font-weight: bold;
}

#d_ofs_iw .window {
    position: absolute;
    width: 180px;
    padding: 10px 4px;
    bottom: 70px;
    left: -90px;
    background-color: white;
    font-size: 10px;
    border-radius: 8px;
    box-shadow: rgba(0,0,0, 0.3) 0px 2px 7px 1px;
    opacity: 0.9;
    z-index: 100;
}

#d_ofs_iw.flash .window {
    background-color: #aaaaaa;
}

#d_ofs_iw_pointer {
    position: absolute;
    height: 2000px;
    width: 2000px;
    top: -1000px;
    left: -1000px;
    pointer-events: none;
    z-index: 120;
}

#d_ofs_iw_pointer svg {
    width: 100%;
    height: 100%;
}

#d_ofs_iw_pointer line {
    stroke: var(--pointer-color);
    stroke-width: 1px;
    stroke-dasharray: 5px;
}

#d_ofs_iw .window .close {
    position: absolute;
    top: 0px;
    right: 0px;
    padding: 0px 6px 10px 10px;
    z-index: 110;
    font-family: "bitstream vera sans", verdana, sans-serif;
    font-size: 14px;
    cursor: pointer;
}

#d_ofs_iw .window .arrows_enbl {
    font-weight: bold;
    text-align: center;
    margin-top: 3px;
    z-index: 110;
}

#d_ofs_iw .window .arrows_enbl input,
#d_ofs_iw .window .arrows_enbl label {
    cursor: pointer;
}

#d_ofs_iw .window .value {
    font-weight: bold;
}

#d_ofs_iw .window .msg,
#d_ofs_iw .window .current,
#d_ofs_iw .window .wind,
#d_ofs_iw .window .date {
    position: relative;
    display: inline-block;
}

#d_ofs_iw .window .txt {
    position: absolute;
    top: 4px;
    left: 41px;
}

#main:not(.w_xtide) #d_ofs_iw .window .current .xtide,
#main.w_xtide #d_ofs_iw .window .current .noxtide,
#main:not(.w_xtide) #d_ofs_iw .window .current .xt,
#main:not(.w_xtide) #d_ofs_iw .window .station_name {
    display: none;
}

#main:not(.w_xtide) #d_ofs_iw .window .current {
    margin-bottom: 6px;
}

#main.w_xtide #d_ofs_iw .window .current {
    margin-bottom: 8px;
}

#d_ofs_iw .window .current .xtide,
#d_ofs_iw .window .current .noxtide {
    position: absolute;
    font-style: italic;
}

#d_ofs_iw .window .current .xtide {
    left: 42px;
    top: 31px;
    color: #990000;
}

#d_ofs_iw .window .current .noxtide,
#d_ofs_iw .window .current .xt_e_f {
    font-size: 9px;
}

#d_ofs_iw .window .current .noxtide {
    left: 40px;
    top: 24px;
}

#d_ofs_iw .window .linkref,
#d_ofs_iw .window .msg {
    margin-top: 8px;
}

#d_ofs_iw .window .current,
#d_ofs_iw .window .wind,
#d_ofs_iw .window .station_name {
    margin-top: 2px;
}

#d_ofs_iw .window .date,
#d_ofs_iw .window .msg,
#d_ofs_iw .window .linkref,
#d_ofs_iw .window .latlng,
#d_ofs_iw .window .station_name {
    width: 100%;
    text-align: center;
}

#d_ofs_iw .window .date {
    font-size: 12px;
}

#d_ofs_iw .window .linkref {
    font-style: italic;
}

#d_ofs_iw .window .current .rotate,
#d_ofs_iw .window .wind .rotate {
    transform-origin: 20px 20px;
}

#d_ofs_iw .window .current .xtflood.rotate,
#d_ofs_iw .window .current .xtebb.rotate {
    opacity: 0;
}

#d_ofs_iw .window .current .xtflood {
    fill: blue;
}

#d_ofs_iw .window .current .xtebb {
    fill: #00b32a;
}

#d_ofs_iw .window .current .xt_e_f {
    position: relative;
    top: 2px;
    left: 10px;
    color: #990000;
}

#d_ofs_iw:not(.at_station) .window .current .xt_e_f {
    display: none;
}

#d_ofs_iw .window .current .arrow {
    stroke: var(--current-color);
}

#d_ofs_iw .window .circle {
    fill: var(--circle-bgcolor);
}

#d_ofs_iw .window .wind .arrow {
    stroke: var(--wind-color);
    fill: var(--circle-bgcolor);
}

#d_ofs_iw .window .bar {
    transform-origin: 41px 12px;
}

#d_ofs_iw .window .loading {
    position: absolute;
    width: 23px;
    height: 23px;
    left: 4px;
    top: 4px;
}

#d_ofs_iw .triangle {
    position: absolute;
    width: 30px;
    height: 15px;
    bottom: -15px;
    left: 75px;
    z-index: 110;
}

#tide.ofs_iw_dragging #d_ofs_iw {
    cursor: grabbing;
}

#main:not(.loading_ofs):not(.initializing_ofs) #d_ofs_iw .window .loading {
    display: none;
}

#main:not(.initializing_ofs) #d_ofs_iw:not(.current) .window .current,
#main:not(.initializing_ofs) #d_ofs_iw:not(.wind) .window .wind {
    display: none;
}

#d_ofs_iw_cursor {
    position: absolute;
    height: 1px;
    width: 1px;
    z-index: 120;
}

#d_ofs_iw_cursor .box {
    position: absolute;
    width: 11px;
    height: 11px;
    top: -6px;
    left: -6px;
    border: 1px solid var(--pointer-color);
    pointer-events: none;
}

.spinner {
    display: block;
    margin-top: 20px;
    margin-left: auto;
    margin-right: auto
}

#track_iw {
    font-size: 14px;
    padding: 0px;
    margin: 0px;
    background-color: white;
}

#track_iw td {
    text-align: right;
    padding-right: 10px;
}

/* Safari iOS needs extra space on the bottom */
#main.mobile_phone #track_iw {
    margin-bottom: 10px;
}

#ts_txt, #ts_start {
	font-weight: bold;
}
#ts_txt:hover {
    cursor: pointer;
}

#ts_tbl td {
    font-size: 0.8em;
}

#ts_hdr {
    font-size: 0.8em;
}

.ts_table a {
    font-weight: bold;
}

#footer {
    position: relative;
    top: 3px;
    padding: 5px;
    line-height: 0.9;
    text-align: center;
    border-top: 1px solid #fc0;
    min-height: 65px;
}

#copyright {
        color: black;
	text-align:center;
        top: 2px;
}
#copyright a:link, #copyright a:visited {
        color: black;
}
#copyright a:hover {
    color: blue;
    text-decoration: underline;
}

#d_loc {
    margin-right: 5px;
    position: relative;
}

#d_menu {
    position: relative;
    float: right;
    margin-left: 10px;
    margin-right: 5px;
    z-index: 999;
}

#d_menu:hover {
	background-color: #c9d3dc;
}

#d_menu_list {
    position: absolute;
    top: 0;
    right: 0;
	background-color: #c9d3dc;
    border: 2px solid black;
}

#d_dismiss_menu {
    position: absolute;
    top: 0px;
    right: 5px;
    font-weight: normal;
    font-size: 120%;
}

#d_menu_list ul {
    list-style-type: none;
    font-size: 90%;
    font-weight: normal;
    font-style: italic;
    text-align: left;
    padding-left: 15px;
    padding-right: 15px;
}

#d_menu_list ul a,
#d_menu_list ul a:visited {
    color: black;
    text-decoration: none;
}

#d_menu_list ul a:hover {
    color: blue;
    text-decoration: underline;
}

#main:not(.show_menu) #d_menu_list {
    display: none;
}


#loc_txt {
    position: relative;
    top: 1px;
    font-size: 0.9em;
    font-weight: bold;
}

#d_retab {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 200;
    border-radius: 2px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 5px;
}

#d_retab button {
    font-size: 14px;
}

#main.mobile_phone #d_retab button {
    font-size: 18px;
}

#main.mobile_phone:not(.map_view) #d_vector_scale {
    display: none;
}

/* Expandable list items in Help tab */
.expander {
    cursor: pointer;
    list-style-type: '\25b8  ';   /* Right-pointing triangle */
}

.expander.expanded {
    list-style-type: '\25be  ';   /* Down-pointing triangle */
}

.expander .expandable {
    cursor: default;
}

.expander:not(.expanded) .expandable {
    display: none;
}

#d_help_expand_buttons {
    font-style: italic;
    font-size: 80%;
    color: black;
}

#d_help_expand_buttons button {
	background-color: #cbdcff;
	border: 1px solid gray;
    padding: 0 3px 0 2px;
    margin-right: 15px;
    text-align: left;
}

#help .button_txt {
    font-size: 80%;
    background-color: #cbdcff;
	border: 1px solid gray;
    padding: 0 3px 0 2px;
}

.help_hl {
    background-color: var(--help_hl-color);
}

.goto_hl {
    background-color: var(--help_tgt-color);
}

[data-help_goto] {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-decoration-color: #40b000;
}

[data-help_show],
[data-help_goto] {
    font-style: normal;
    color: darkgreen;
}

[data-help_show]:not(.normal),
[data-help_goto]:not(.normal) {
    font-weight: bold;
}

[data-help_goto],
[data-help_show],
#main.help_show_hl {
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

[data-help_show]:hover,
[data-help_goto]:hover {
    color: blue;
}

#main.help_show_hl [data-help_show]:active {
    color: purple;
    cursor: grabbing;
}

#main.help_show_hl_on_map #sidepane {
    display: none;
}

.rjust {
    float: right;
}

#d_ofs_overlay {
    position: fixed;
    border: none;
}

#main:not(.ofs.ofs_infowindow):not(.initializing_ofs) #d_ofs_iw,
#main:not(.ofs.ofs_infowindow) #d_ofs_iw_pointer,
#main:not(.ofs.ofs_infowindow) #d_ofs_iw_cursor {
    display: none;
}

#main.initializing_ofs #d_ofs_iw {
    top: 50%;
    left: 50%;
}

#main.initializing_ofs #d_ofs_iw .bar {
    transform: scale(0, 1);
}

#main.initializing_ofs #d_ofs_iw .arrow {
    stroke-opacity: 0;
}

#d_ofs_current_color {
    position: absolute;
    visibility: hidden;
    background-color: var(--current-color);
}

#d_ofs_wind_color {
    position: absolute;
    visibility: hidden;
    background-color: var(--wind-color);
}

.ofs_container:not(.current) .ofs_type.current,
.ofs_container:not(.wind) .ofs_type.wind {
    display: none;
}

#i_ofs_points_map {
    display: none; /* FIXME - for debug */
    opacity: 0.5;
    z-index: 15;
}

.ofs_tile {
    width: 256px;
    height: 256px;
    font-size: 10;
    border: 1px solid #aaaaaa;
    opacity: 0.5;
}

.ofs_mesh_enbl {
    margin-left: 20px;
    font-style: italic;
}

#help ul, .lj_list {
    padding-left: 15px;
}

#help li:not(.expander) {
    list-style-type: square;
}

#main:not(.map_view).flash_help_button #help_tab,
#main.map_view.flash_help_button #b_mv_help,
#main[data-help_subjects].auto_help #s_auto_help,
#main[data-help_subjects].auto_help #ul_help .expanded > :first-child {
    background-color: var(--help_hl-color);
}

#main[data-help_subjects].auto_help #help_tab,
#main[data-help_subjects].auto_help #b_mv_help {
    border-color: #eeee00;
}

.expander_elipsis {
    font-weight: bold;
    font-size: 125%;
}

/* The '...' is normally not shown. */
#main:not(.show_elipses) #ul_help li.expander .expander_elipsis,
#main:not(.auto_help) expander_elipsis,
#main:not([data-help_subjects]) #ul_help li.expander .expander_elipsis,
#main[data-help_subjects] #ul_help li.expander.expanded > .expander_elipsis,
#main[data-help_subjects] #ul_help li.help_hl.expander:not(.expanded) > .expander_elipsis,

/* Show only the '...' for the first li in a sequence of unexpanded li's (unless highlighted) */
/* Special case: data-help_subjects="auto_help" shows only the top-level items. */
#main[data-help_subjects="auto_help"] #ul_help .expander_elipsis,
#main[data-help_subjects]:not([data-help_subjects="auto_help"]).show_elipses #ul_help li.expander:not(.expanded):not(.help_hl) > :not(.expander_elipsis),
#main[data-help_subjects]:not([data-help_subjects="auto_help"]).show_elipses #ul_help li.expander:not(.expanded) + li.expander:not(.expanded):not(first-of_type):not(.help_hl),

/* Show only the title and highlighted contents of ancestor expanders. */
/* Note that a [data-subjects] element must be the direct descendant of a .expandable element. */
#main[data-help_subjects].show_elipses #ul_help li.expander.expanded:not(.help_hl) > .expandable > :not(.help_hl):not(.has_expanded) {
    display: none;
}

#d_help_hl_box {
    border: 1px solid red;
    box-sizing: border-box;
    position: fixed;
    z-index: 9999;
    transition-property: left, top, width, height;
    transition-duration: 0.3s;
    transition-timing-function: ease-in-out;
}

#d_help_hl_box > div {
    box-sizing: border-box;
    position: relative;
    width: 100%;
    height: 100%;
    border: 7px solid yellow;
}

#main:not(.help_show_hl) #d_help_hl_box {
    display: none
}

.normal {
    font-weight: normal;
}

/* Hack to fix missing tiles on print (uses a Google Maps internal class name).
    See https://stackoverflow.com/questions/41544151/google-maps-missing-row-of-tiles-on-chrome
        https://bugs.chromium.org/p/chromium/issues/detail?id=426294
*/
@media print {
    .gm-style div > img {
        position: absolute;
    }
}

/* Hack to make Measure track info window transparent to mouse events while drawing.  Uses a Google Maps internal class name.*/
#main[data-tab="track"].drawing_track .gm-style-iw {
    pointer-events: none;
}
#main[data-tab="track"].drawing_track .gm-style-iw button {   /* (except the 'X' button) */
    pointer-events: auto;
}

/* Hack to allow copy/paste from Measure track info window while not drawing */
#main[data-tab="track"]:not(.drawing_track) .gm-style-iw {
    user-select: text;
    -webkit-user-select: text;
    -webkit-touch-callout: default;
}
