* { box-sizing: border-box; }

html,
body {
    margin: 0;
    height: 100%;
    background: var(--bg);
    color: var(--text);
    font-family: "IBM Plex Sans", sans-serif;
    overflow: hidden;
}

body {
    padding: 8px;
    transition: background-color 140ms ease, color 140ms ease;
}

button,
input,
select {
    font: inherit;
}

p {
    margin: 0;
}

.hidden { display: none !important; }
.wide { width: 100%; }

.eyebrow,
.compact-field span,
.compact-toggle span,
.field span,
.toolbox-label,
.toolbox-block-label,
.info-label {
    font-family: "IBM Plex Mono", monospace;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
}

.panel-title,
.shop-card-title,
.delivery-card-title,
.floating-title,
h2 {
    margin: 0;
    font-weight: 600;
}

.floating-title,
.panel-title,
.shop-card-title,
.delivery-card-title {
    letter-spacing: -0.01em;
}

.panel-copy,
.login-copy,
.delivery-meta,
.shop-card-meta,
.search-result-desc,
.cut-hint,
.map-cut-status {
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.35;
}

.shop-card-title {
    font-size: 1rem;
}

.delivery-card-title {
    font-size: 0.94rem;
}

.shop-card-meta,
.delivery-meta,
.panel-copy,
.search-result-desc {
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    body { padding: 6px; }
}