@import url('https://fonts.googleapis.com/css2?family=Doto:wght,ROND@700,100&display=swap');

body {
    background-color: #050505;
    color: #ff9f1c;
    font-family: "Courier New", Courier, monospace;
    font-size: 0.92rem;
}

h1 {
    color: #ffb000;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

h2 {
    color: #ff9f1c;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin-top: 1.25rem;
}

.container {
    max-width: 960px;
}

.card {
    background-color: #101010;
    color: #ff9f1c;
    border: 1px solid #6b4300;
    border-radius: 0.4rem;
}

.card-header {
    background-color: #191919 !important;
    color: #ffb000 !important;
    border-bottom: 1px solid #8a5700;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.table {
    --bs-table-bg: #101010;
    --bs-table-striped-bg: #18130a;
    --bs-table-hover-bg: #2a1c08;
    --bs-table-color: #ff9f1c;
    --bs-table-striped-color: #ffb347;
    --bs-table-hover-color: #ffd27a;
    --bs-table-border-color: #513500;

    color: #ff9f1c;
    font-size: 0.88rem;
}

.table th {
    background-color: #191919;
    color: #ffc04d;
    border-color: #6b4300;
    text-transform: uppercase;
}

.table td {
    border-color: #3d2900;
}

.form-control {
    background-color: #111111;
    color: #ffb000;
    border-color: #8a5700;
    font-family: "Courier New", Courier, monospace;
    font-size: 0.92rem;
}

.form-control:focus {
    background-color: #161616;
    color: #ffc04d;
    border-color: #ff9f1c;
    box-shadow: 0 0 0 0.2rem rgba(255, 159, 28, 0.2);
}

.form-control::placeholder {
    color: #a66b16;
}

.btn {
    font-family: "Courier New", Courier, monospace;
    font-size: 0.88rem;
    font-weight: 700;
}

.btn-primary,
.btn-outline-primary {
    background-color: #ff9f1c;
    color: #080808;
    border-color: #ff9f1c;
}

.btn-primary:hover,
.btn-outline-primary:hover {
    background-color: #ffc04d;
    color: #000000;
    border-color: #ffc04d;
}

.btn-secondary {
    background-color: #292929;
    color: #ffb000;
    border-color: #8a5700;
}

.btn-secondary:hover {
    background-color: #3b2a0c;
    color: #ffd27a;
    border-color: #ff9f1c;
}

.text-muted {
    color: #bf8127 !important;
}

a {
    color: #ffc04d;
}

a:hover {
    color: #ffe0a3;
}
/* Dot-matrix display effect */

h1,
h2,
.card-header,
.table th*
.table td,
.btn {
    letter*spacing: 0.08em;
    text-shadow:
*       0 0 2px rgba(255, 159, 28, *.9),
        0 0 6*x rgba(255, 128, 0, 0.45);
}

*1 {
    text-shadow:
        **0 3px rgba(255, 176, 0* 1),
        * 0 8px rgba(255, 128, 0, 0.65);
}

/* Subtle LED grid behind display areas */

.card-body,
.table-responsive {
    background-color: #080808;
    background-image:
        radial-gradient(
            circle,
            rgba(255, 159, 28, 0.08) 1px,
            transparent 1.5px
        );
    background-size: 5px 5px;
}

/* Keep table content readable above the dot grid */

.table {
    position: relative;
    margin-bottom: 0;
}

.table th,
.table td {
    position: relative;
}

/* Bright amber timetable times */

.table td:first-child {
    color: #ffc04d;
    font-weight: 700;
    letter-spacing: 0.12em;
}

/* Amber glow when hovering over a train row */

.table-hover tbody tr:hover {
    box-shadow:
        inset 0 0 12px rgba(255, 159, 28, 0.12);
}

/* Dark display-style input fields */

.form-control {
    text-shadow:
        0 0 3px rgba(255, 159, 28, 0.4);
}

/* Reduce the glow on smaller text */

.text-muted {
    text-shadow:
        0 0 2px rgba(255, 159, 28, 0.25);
}
/* Stronger dot-matrix display effect */

.card-body,
.table-responsive {
    background-color: #050505;

    background-image:
        radial-gradient(
            circle at center,
            rgba(255, 159, 28, 0.32) 1.4px,
            rgba(255, 159, 28, 0.10) 1.8px,
            transparent 2.2px
        );

    background-size: 7px 7px;
}

/* Darken cells slightly so the grid remains visible */

.table {
    --bs-table-bg: rgba(5, 5, 5, 0.72);
    --bs-table-striped-bg: rgba(55, 32, 0, 0.55);
    --bs-table-hover-bg: rgba(100, 58, 0, 0.55);
}

/* Stronger illuminated lettering */

h1,
h2,
.card-header,
.table th,
.table td {
    text-shadow:
        0 0 2px #ffb000,
        0 0 5px rgba(255, 159, 28, 0.85),
        0 0 10px rgba(255, 100, 0, 0.45);
}

/* Make timetable information look more like a display */

.table th,
.table td {
    font-weight: 700;
    letter-spacing: 0.12em;
}

/* Visible display border */

.card {
    border: 2px solid #8a5700;
    box-shadow:
        0 0 8px rgba(255, 159, 28, 0.2),
        inset 0 0 18px rgba(255, 159, 28, 0.06);
}
/* Stronger dot-matrix display effect */

.card-body,
.table-responsive {
    background-color: #050505;

    background-image:
        radial-gradient(
            circle at center,
            rgba(255, 159, 28, 0.32) 1.4px,
            rgba(255, 159, 28, 0.10) 1.8px,
            transparent 2.2px
        );

    background-size: 7px 7px;
}

/* Darken cells slightly so the grid remains visible */

.table {
    --bs-table-bg: rgba(5, 5, 5, 0.72);
    --bs-table-striped-bg: rgba(55, 32, 0, 0.55);
    --bs-table-hover-bg: rgba(100, 58, 0, 0.55);
}

/* Stronger illuminated lettering */

h1,
h2,
.card-header,
.table th,
.table td {
    text-shadow:
        0 0 2px #ffb000,
        0 0 5px rgba(255, 159, 28, 0.85),
        0 0 10px rgba(255, 100, 0, 0.45);
}

/* Make timetable information look more like a display */

.table th,
.table td {
    font-weight: 700;
    letter-spacing: 0.12em;
}

/* Visible display border */

.card {
    border: 2px solid #8a5700;
    box-shadow:
        0 0 8px rgba(255, 159, 28, 0.2),
        inset 0 0 18px rgba(255, 159, 28, 0.06);
}

/* Genuine dot-matrix lettering */

h1,
h2,
.card-header,
.table th,
.table td,
.btn {
    font-family: "Doto", "Courier New", monospace;
    font-weight: 700;
    font-variation-settings: "ROND" 100;
}

/* Larger, clearer dot lettering for headings */

h1 {
    font-size: 2.35rem;
    line-height: 1.2;
    letter-spacing: 0.04em;
}

h2 {
    font-size: 1.65rem;
    line-height: 1.25;
}

/* Clear dot-matrix timetable lettering */

.table th,
.table td {
    font-size: 1rem;
    letter-spacing: 0.05em;
}

/* Keep input fields easy to read while typing */

.form-control {
    font-family: "Courier New", Courier, monospace;
}

/* Strong amber display glow */

h1,
h2,
.card-header,
.table th,
.table td {
    text-shadow:
        0 0 2px #ffb000,
        0 0 6px rgba(255, 159, 28, 0.65);
}

/* Force the V2 dark background across every page */
html,
body {
    min-height: 100%;
    background-color: #050505 !important;
}

body > .container {
    background-color: #050505 !important;
}

/* Consistent bright V2 text across all pages */
body,
body p,
body label {
    c*lor: #ffb000 !important;
}

h1,
h2*
h3,
h4,
h5,
h6 {
    color: #ffc2*7 !important;
    opacity: 1 !impo*tant;
    text-shadow:
        0 0*2px #ffb000,
        0 0 6px rgba(255, 159, 28, 0.85) !important;
}

/* Force Bootstrap tables to use the V2 dark display theme */
.table {
    --bs-table-bg: #080808 !important;
    --bs-table-color: #ffb000 !important;
    --bs-table-striped-bg: #151008 !important;
    --bs-table-striped-color: #ffc247 !important;
    --bs-table-hover-bg: #2a1c08 !important;
    --bs-table-hover-color: #ffd27a !important;
    --bs-table-border-color: #6b4300 !important;

    background-color: #080808 !important;
    color: #ffb000 !important;
}

/* Override Bootstrap backgrounds placed directly on table cells */
.table > :not(caption) > * > * {
    background-color: #080808 !important;
    color: #ffb000 !important;
    border-color: #6b4300 !important;
    box-shadow: none !important;
}

.table > thead > tr > th {
    background-color: #191919 !important;
    color: #ffc247 !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #151008 !important;
    color: #ffc247 !important;
}

.table-hover > tbody > tr:hover > * {
    background-color: #2a1c08 !important;
    color: #ffd27a !important;
}

/* Keep form fields consistent with the dark V2 display */
.form-control {
    background-color: #111111 !important;
    color: #ffc247 !important;
    border-color: #8a5700 !important;
}

.form-control::placeholder {
    color: #bf8127 !important;
    opacity: 1;
}

/* Final V2 heading brightness */
h1,
h2,
h3,
h4,
h5,
h6 {
    color: #ffc247 !important;
    opacity: 1 !important;
    filter: none !important;
    text-shadow:
        0 0 2px #ffb000,
        0 0 6px rgba(255, 159, 28, 0.95),
        0 0 12px rgba(255, 100, 0, 0.55) !important;
}

/* Unified V2 amber buttons */
.btn,
.btn-primary,
.btn-secondary,
.btn-outline-primary {
    background-color: #151008 !important;
    color: #ffc247 !important;
    border: 1px solid #ff9f1c !important;
    border-radius: 0.4rem !important;
    font-family: "Doto", "Courier New", monospace !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-shadow:
        0 0 2px #ffb000,
        0 0 5px rgba(255, 159, 28, 0.75) !important;
    box-shadow:
        inset 0 0 8px rgba(255, 159, 28, 0.08),
        0 0 4px rgba(255, 159, 28, 0.12) !important;
}

/* Bright amber button hover and focus */
.btn:hover,
.btn:focus,
.btn-primary:hover,
.btn-primary:focus,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: #ff9f1c !important;
    color: #050505 !important;
    border-color: #ffc247 !important;
    text-shadow: none !important;
    box-shadow:
        0 0 8px rgba(255, 159, 28, 0.65) !important;
}

/* Preserve visible keyboard focus */
.btn:focus-visible {
    outline: 2px solid #ffd27a !important;
    outline-offset: 2px;
}

/* Brighter general display text */
body,
p,
label,
.table td,
.table th {
    color: #ffb000 !important;
    opacity: 1 !important;
}

.alert,.alert-warning{background-color:#151008!important;color:#ffc247!important;border:1px solid #ff9f1c!important;font-family:"Doto","Courier New",monospace!important;font-weight:700!important;text-shadow:0 0 2px #ffb000,0 0 5px rgba(255,159,28,0.75)!important;box-shadow:0 0 8px rgba(255,159,28,0.18)!important;}
.freight-page .card-body,.freight-page .table-responsive{background-color:#050505!important;background-image:radial-gradient(circle at center,rgba(255,159,28,0.12) 1px,rgba(255,159,28,0.03) 1.4px,transparent 1.8px)!important;background-size:8px 8px!important;}

/* Consistent passenger and freight page width */
.passenger-page > .container,
.freight-page > .container {
    width: 100%;
    max-width: 1170px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* Use more of the screen on tablets and phones */
@media (max-width: 1199.98px) {
    .passenger-page > .container,
    .freight-page > .container {
        max-width: calc(100% - 1.5rem);
    }
}

/* BEGIN DARWIN TIME CONTROL THEME */
.form-select,
input[type="date"],
input[type="time"] {
    background-color: #101010 !important;
    color: #ffb000 !important;
    border: 1px solid #a86f00 !important;
    border-radius: 0.5rem;
    color-scheme: dark;
}
.form-select:focus,
input[type="date"]:focus,
input[type="time"]:focus {
    background-color: #151515 !important;
    color: #ffb000 !important;
    border-color: #ffb000 !important;
    box-shadow: 0 0 0 0.2rem rgba(255,176,0,.22) !important;
}
.form-select option {
    background-color: #101010;
    color: #ffb000;
}
.form-select option:checked {
    background-color: #2a1c08;
    color: #ffb000;
}
.form-select option:hover,
.form-select option:focus {
    background-color: #241706;
    color: #ffc247;
}
/* Fixed amber icons behind the transparent native picker buttons. */
input[type="date"],
input[type="time"] {
    background-repeat: no-repeat !important;
    background-position: right .75rem center !important;
    background-size: 16px 16px !important;
    padding-right: 2.5rem !important;
}

input[type="date"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='3.5' width='12' height='10.5' rx='1.5' fill='none' stroke='%23ffb000' stroke-width='1.5'/%3E%3Cpath d='M5 2v3M11 2v3M2 6.5h12' fill='none' stroke='%23ffb000' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M5 9h1M8 9h1M11 9h1M5 11.5h1M8 11.5h1M11 11.5h1' stroke='%23ffb000' stroke-width='1.25' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}

input[type="time"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6' fill='none' stroke='%23ffb000' stroke-width='1.5'/%3E%3Cpath d='M8 4.5V8l2.5 1.5' fill='none' stroke='%23ffb000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0;
    filter: none !important;
}

/* Use a crisp amber chevron instead of the dark native select arrow. */
.form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffb000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right .75rem center !important;
    background-size: 16px 12px !important;
    padding-right: 2.5rem !important;
}
@media (min-width: 992px) {
    .passenger-search-row {
        display: flex;
        flex-wrap: nowrap;
        align-items: end;
    }
    .passenger-search-row > * {
        min-width: 0;
    }
    .passenger-search-row .form-control,
    .passenger-search-row .form-select {
        width: 100%;
        min-width: 0;
    }
    .passenger-search-row .custom-time {
        flex: 0 0 130px;
        width: 130px;
    }
    .passenger-search-button {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}
@media (max-width: 991.98px) {
    .passenger-search-row { flex-wrap: wrap; }
}
/* END DARWIN TIME CONTROL THEME */

/* Sharper combined-search result text */
#results table,
#results thead,
#results tbody,
#results tr,
#results th,
#results td {
    text-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
}

#results th {
    font-weight: 700 !important;
}

#results td {
    font-weight: 500 !important;
}

#results .btn {
    text-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
}

/* Final site-wide rendering policy: crisp text without halo or bloom */
body,
body * {
    text-shadow: none !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Remove decorative glow while retaining borders and normal card depth. */
body .alert,
body .alert-warning,
body .table-hover > tbody > tr:hover,
body #results tr:hover {
    text-shadow: none !important;
    filter: none !important;
    box-shadow: none !important;
}

/* Keep result and route-table text readable */
body .table th {
    font-weight: 700 !important;
}

body .table td {
    font-weight: 500 !important;
}

/* Keep status colours sharp */
body .text-primary,
body .text-success,
body .text-danger,
body .text-muted {
    text-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
}
/* BEGIN V2.31 SITE READABILITY OVERRIDE
   Remove decorative page and panel dot textures.
   Deliberate vehicle lamp graphics and engineering stripes are unaffected. */
body,
.card,
.card-body,
.table-responsive,
.service-summary-plain,
.freight-page .card-body,
.freight-page .table-responsive,
.passenger-page .card-body,
.passenger-page .table-responsive {
    background-image: none !important;
}

.card-body,
.table-responsive {
    background-color: #050505 !important;
}

/* Use opaque table surfaces after removal of the background texture. */
.table {
    --bs-table-bg: #050505;
    --bs-table-striped-bg: #151009;
    --bs-table-hover-bg: #241706;
}
/* END V2.31 SITE READABILITY OVERRIDE */

/* BEGIN SHARED RAIL DATA PAGE STRUCTURE */
.page-shell {
    overflow: hidden;
}

.site-masthead {
    display: flex;
    align-items: center;
    min-height: 4.75rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #805900;
    background: #181818;
}

.site-masthead-title {
    margin: 0;
    color: #ffc247;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    line-height: 1.1;
    letter-spacing: .055em;
    text-shadow: none !important;
}

.page-introduction {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.page-introduction-copy {
    min-width: 0;
}

.page-introduction-title {
    margin: 0 0 .35rem;
    color: #ffc247;
    font-size: 1.65rem;
    line-height: 1.2;
    text-shadow: none !important;
}

.page-description {
    margin: 0;
    color: #ffb000;
}

.page-context {
    margin-top: .35rem;
    color: #bf8127;
    font-size: .9rem;
}

.page-introduction-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

@media (max-width: 767.98px) {
    .site-masthead {
        min-height: auto;
    }

    .site-masthead-title {
        font-size: 1.65rem;
    }

    .page-introduction {
        flex-direction: column;
    }

    .page-introduction-actions {
        align-self: stretch;
        justify-content: flex-end;
    }
}
/* END SHARED RAIL DATA PAGE STRUCTURE */



/* BEGIN RAIL DATA SEARCH IMAGE MASTHEAD TRIAL */
.site-masthead {
    overflow: hidden;
}

.site-masthead-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.site-masthead-logo-wide {
    max-height: 12rem;
}

.site-masthead-logo-compact {
    max-height: 4rem;
}

.site-masthead-title-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 575.98px) {
    .site-masthead {
        padding: .45rem .65rem;
    }

    .site-masthead-logo-wide {
        max-height: 8rem;
    }

    .site-masthead-logo-compact {
        max-height: 3.25rem;
    }
}
/* END RAIL DATA SEARCH IMAGE MASTHEAD TRIAL */
