.pt-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}
.pt-layout--single { grid-template-columns: minmax(0, 640px); }
.pt-form { display: grid; gap: 0.35rem; }
.pt-form label { font-weight: 750; color: #313042; }
.pt-form input,
.pt-form textarea,
.pt-form select {
    width: 100%;
    font: inherit;
    padding: 0.7rem 0.8rem;
    border: 1px solid #e4e1ea;
    border-radius: 10px;
    background: #fff;
}
.pt-form button, .pt-admin .pt-form button {
    margin-top: 0.5rem;
    justify-self: start;
    background: #313042;
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 0.75rem 1.2rem;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}
.pt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.pt-list a {
    display: block;
    text-decoration: none;
    border: 1px solid #e4e1ea;
    border-radius: 12px;
    padding: 0.8rem 0.9rem;
    color: #313042;
    background: #fff;
}
.pt-list span { display: block; color: #5c6570; font-size: 0.88rem; }
.pt-alert { padding: 0.8rem 1rem; border-radius: 12px; background: #fde8e8; color: #9b1c1c; }
.pt-alert--ok { background: #e7f6ec; color: #146c36; }
.pt-thread header { margin-bottom: 1rem; }
.pt-status, .pt-pill {
    display: inline-block;
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.pt-status--open, .pt-pill--open { background: #fff8e5; color: #8a4b00; }
.pt-status--answered, .pt-pill--answered { background: #e7f6ec; color: #146c36; }
.pt-status--closed, .pt-pill--closed { background: #eee; color: #555; }
.pt-meta { color: #5c6570; font-size: 0.92rem; }
.pt-msg { border-radius: 14px; padding: 0.9rem 1rem; margin: 0 0 0.7rem; }
.pt-msg--customer { background: #f4f2f6; }
.pt-msg--admin { background: #fff8e5; }
.pt-msg__who { margin: 0 0 0.3rem; font-weight: 750; color: #313042; }
.pt-msg__who time { font-weight: 500; color: #5c6570; margin-left: 0.4rem; }
.pt-msg__body p:last-child { margin-bottom: 0; }
.pt-back { font-weight: 750; }
.pt-hp { position: absolute !important; left: -9999px !important; height: 0; opacity: 0; }
.pt-signin { margin-top: 1rem; }

@media (max-width: 800px) {
    .pt-layout { grid-template-columns: 1fr; }
}
