html {
    background: #ccc;
    color: #000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14pt;
}

body {
    background: #fff;
    padding: 10px;
    margin: 10px auto;
    width: 800px;
}

p {
    padding: 5px 30px;
}

#header {
    font-size: 10pt;
}

#header img {
    display: block;
    margin: 0 auto;
    height: 45px;
}

#header th {
    padding-left: 50px;
}

h1,
h2 {
    text-align: center;
    text-transform: uppercase;
}

table {
    margin: 2px auto;
}

th {
    text-align: right;
}

td {
    text-align: left;
}

.notice {
    color: #a00;
    font-weight: bold;
}

.notice em {
    text-decoration: underline;
}

input[type=text],
input[type=number],
textarea {
    font-family: 'Courier New', Courier, monospace;
    border: thin solid #aaa;
    font-size: 14pt;
    margin: 2px;
    padding: 3px;
    width: 320px;
}

input[type=submit] {
    display: block;
    margin: 10px auto;
}

textarea {
    height: 100px;
}

input[type=text]:invalid,
input[type=number]:invalid,
textarea:invalid {
    border-color: #b00;
    box-shadow: 0 0 3px #f00;
}

input[type=text]:focus,
input[type=number]:focus,
textarea:focus {
    border-color: #05b;
    box-shadow: 0 0 3px #0af;
}

input[type=text]:focus:invalid,
input[type=number]:focus:invalid,
textarea:focus:invalid {
    border-color: #f95;
    box-shadow: 0 0 3px #eb1;
}

input[name=expire_month],
input[name=expire_year] {
    font-family: 'Courier New', Courier, monospace;
    width: 42px;
}

input[name=number] {
    padding-left: 40px;
    width: 280px;
    background: url('card-unknown.svg') 2px center no-repeat;
    background-size: auto 19px;
}

input[name=number].visa {
    background-image: url('card-visa.svg');
}

input[name=number].mastercard {
    background-image: url('card-mastercard.svg');
}

input[name=number].amex {
    background-image: url('card-amex.svg');
}