:root {
    font-family: Inter, system-ui, sans-serif;
    color: #132a32;
    background: #eff4f2;
    font-synthesis: none;
    line-height: 1.5;
}
* { box-sizing: border-box; }
body { margin: 0; }
.bar {
    background: #142e36;
    color: #fff;
    min-height: 66px;
    padding: .75rem max(1.25rem, calc((100% - 960px) / 2));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-weight: 700;
}
main { max-width: 1000px; padding: 2.5rem 1.25rem; margin: auto; }
h1 { margin: 0 0 1.3rem; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.035em; }
h2 { margin: 0 0 1rem; font-size: 1.15rem; }
.layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr); gap: 1.15rem; align-items: start; }
.details { display: grid; gap: 1.15rem; min-width: 0; }
.card { background: #fff; padding: 1.35rem; border: 1px solid #d6e1dd; border-radius: 14px; }
.login { max-width: 420px; }
.artwork { text-align: center; }
.artwork img { display: block; max-width: 100%; height: auto; margin: .25rem auto .65rem; }
.address { display: block; overflow-wrap: anywhere; }
.downloads { margin-top: 1rem; display: flex; gap: .65rem; justify-content: center; flex-wrap: wrap; }
label { display: block; font-size: .9rem; font-weight: 650; }
input {
    font: inherit;
    width: 100%;
    margin: .3rem 0 .8rem;
    padding: .65rem .7rem;
    border: 1px solid #9ab0a9;
    border-radius: 6px;
    color: inherit;
}
a { color: #075c52; text-underline-offset: .18em; }
button, .downloads a {
    background: #075c52;
    border: 1px solid #075c52;
    border-radius: 6px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font: inherit;
    font-weight: 650;
    padding: .55rem .8rem;
    text-decoration: none;
}
.downloads a { background: #fff; color: #075c52; }
button:hover { background: #09463e; }
.downloads a:hover { background: #eaf3ef; }
button.quiet { background: transparent; border-color: #a6c1bc; }
:focus-visible { outline: 3px solid #b46b00; outline-offset: 3px; }
.notice { padding: .75rem 1rem; background: #fff6d9; border: 1px solid #d6b76f; border-radius: 6px; }
.count { font-size: 2rem; font-weight: 750; line-height: 1; margin: .4rem 0; }
.hint { font-size: .9rem; color: #425952; }
table { width: 100%; text-align: left; border-collapse: collapse; }
th, td { border-top: 1px solid #d6e1dd; padding: .35rem 0; }
th:last-child, td:last-child { text-align: right; }
@media (max-width: 660px) {
    main { padding-top: 1.4rem; }
    .layout { grid-template-columns: 1fr; }
}
@media print {
    :root { background: #fff; }
    .bar, main > h1, .details, .downloads, .notice { display: none; }
    .layout { display: block; }
    .card { border: 0; }
    .address { color: #000; text-decoration: none; }
}
