.memo {
    font-family: monospace;
    font-size: 14px;
    background: #AECBEB;
    color: #1d2d44;
    padding: 1.4em;
    min-height: 100%;
    box-sizing: border-box;
}

.memo-header {
    text-align: center;
    margin-bottom: 0.6em;
}

.memo-title {
    font-size: 1.6em;
    font-weight: bold;
    letter-spacing: 0.12em;
}

.memo-subtitle {
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-variant: small-caps;
}

.memo-rule {
    border: none;
    border-top: 1px solid #4893C6;
    margin: 0.6em 0 0.8em 0;
}

.memo-rule-section {
    border: none;
    border-top: 1px solid #4893C6;
    margin: 0.6em 0 1em 0;
}

.memo-fields {
    width: 100%;
    font-size: 12px;
    border-collapse: collapse;
    margin-bottom: 0.8em;
}

.memo-fields td {
    padding: 0.1em 0;
}

.memo-fields td:first-child {
    width: 4em;
}

.memo-section {
    margin-bottom: 1.2em;
}

.memo-section-title {
    font-weight: bold;
    font-size: 12px;
    letter-spacing: 0.08em;
    margin-bottom: 0.4em;
}

.memo-section-text {
    white-space: pre-wrap;
    font-size: 1em;
    line-height: 1.5;
}

.memo-section-rule {
    border: none;
    border-top: 1px solid #4893C6;
    margin: 0.8em 0;
}

.memo-ref {
    margin-top: 1.4em;
    font-size: 12px;
    opacity: 0.7;
}

.memo-stamp {
    display: inline-block;
    margin-top: 0.6em;
    padding: 0.3em 0.8em;
    background: #4893C6;
    color: #1d2d44;
    font-weight: bold;
    font-size: 12px;
    letter-spacing: 0.2em;
}

/* Print overrides */
@media print {
    .memo {
        background: #ffffff;
        color: #000000;
    }

    .memo-rule,
    .memo-rule-section,
    .memo-section-rule {
        border-top-color: #000000;
    }

    .memo-ref {
        color: #000000;
    }

    .memo-stamp {
        background: #ffffff;
        color: #000000;
        border: 2px solid #000000;
    }
}