* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f5efe9;
    color: #2f241e;
    font-family: Arial, sans-serif;
}

.app {
    max-width: 520px;
    min-height: 100vh;
    margin: auto;
    padding: 24px 18px;
    background: #fffaf6;
}

header {
    padding: 10px 4px 30px;
}

.logo {
    font-size: 28px;
    font-weight: 800;
}

.subtitle {
    margin-top: 5px;
    color: #8a7568;
}

.screen {
    display: none;
}

.screen.active {
    display: block;
}

h1,
h2 {
    margin-bottom: 24px;
}

button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 15px;
    margin: 7px 0;
    background: #eaded4;
    color: #3b2a20;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

button.primary {
    background: #6f4e37;
    color: white;
}

button.back {
    width: auto;
    background: transparent;
    color: #6f4e37;
    padding-left: 0;
}

label {
    display: block;
    margin: 16px 0;
    font-size: 14px;
    font-weight: 600;
}

input {
    display: block;
    width: 100%;
    margin-top: 7px;
    padding: 14px;
    border: 1px solid #d9cbc0;
    border-radius: 12px;
    font-size: 16px;
}

#guestResult,
#guestInfo {
    margin-top: 20px;
}

.card {
    padding: 18px;
    border: 1px solid #eaded4;
    border-radius: 16px;
    background: white;
}

.guest-name {
    font-size: 22px;
    font-weight: 800;
}

.phone {
    color: #8a7568;
    margin-top: 4px;
}

.balance {
    font-size: 32px;
    font-weight: 800;
    margin-top: 15px;
}

.balance-label {
    color: #8a7568;
}

.operation-buttons {
    display: flex;
    gap: 8px;
    margin-top: 20px;
}

.operation-buttons button {
    margin: 0;
}

.operation-buttons .selected {
    background: #6f4e37;
    color: white;
}

#registerMessage,
#operationMessage {
    min-height: 24px;
    color: #6f4e37;
}