* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { min-height: 100dvh; margin: 0; color: var(--text); background: var(--bg); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.admin-header { position: sticky; z-index: 30; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 8px clamp(16px, 3vw, 32px); border-bottom: 1px solid var(--border); background: var(--panel); backdrop-filter: blur(8px); }
.admin-topbar-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.admin-brand { display: flex; align-items: center; min-height: 32px; }
.admin-brand__logo { display: block; height: 26px; width: auto; }
.admin-header__actions { display: flex; align-items: center; gap: 8px; }
.form-back { display: inline-flex; min-height: 32px; align-items: center; padding: 5px 10px; color: var(--muted); border: 1px solid var(--border); border-radius: 8px; font-size: .7rem; font-weight: 700; text-decoration: none; transition: background .15s, border-color .15s, color .15s; }
.form-back:hover { color: var(--text); border-color: var(--accent-muted); background: var(--surface); }

.admin-messages { position: fixed; z-index: 50; top: 68px; right: 18px; display: grid; gap: 8px; width: min(420px, calc(100% - 36px)); pointer-events: none; }
.admin-message { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin: 0; padding: 12px 16px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); box-shadow: var(--card-shadow); font-size: .84rem; pointer-events: auto; opacity: 1; transform: translateX(0); transition: opacity .2s ease, transform .2s ease; }
.admin-message.is-dismissed { opacity: 0; transform: translateX(12px); }
.admin-message--error { color: var(--danger); border-color: var(--danger); background: var(--danger-muted); }
.admin-message--success { color: var(--success); border-color: var(--success); background: var(--accent-muted); }
.admin-message-close { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; color: inherit; border: 0; background: none; font-size: 1.1rem; line-height: 1; opacity: .6; cursor: pointer; }
.admin-message-close:hover { opacity: 1; }

.admin-main { width: min(1100px, calc(100% - 40px)); margin: 0 auto; padding: 16px 0 32px; }
.admin-main > .public-back { align-self: flex-start; margin-bottom: 12px; }

.admin-page-header { margin-bottom: 16px; }
.admin-eyebrow { margin: 0 0 4px; color: var(--muted); font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .07em; }
.admin-page-header h1 { margin: 0; font-size: 1.625rem; font-weight: 800; line-height: 1.2; letter-spacing: -.02em; }
@media (min-width: 768px) { .admin-page-header h1 { font-size: 2rem; } }

.admin-section { margin-bottom: 28px; }
.admin-section__title { margin: 0 0 12px; color: var(--muted); font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.admin-text-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--muted); font-size: .8125rem; font-weight: 600; text-decoration: none; }
.admin-text-link:hover { color: var(--text); }

.quick-access-group { display: grid; gap: 10px; }
.quick-access-group + .quick-access-group { margin-top: 20px; }
.quick-access-group__title { margin: 0; color: var(--muted); font-size: .6875rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.quick-access { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 480px) { .quick-access { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px) { .quick-access { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.quick-link { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 14px 16px; color: var(--text); border: 1.5px solid var(--border); border-radius: 10px; background: var(--panel); box-shadow: var(--card-shadow); font-size: .875rem; font-weight: 600; text-decoration: none; transition: background .15s, border-color .15s, box-shadow .15s, transform .12s; }
.quick-link:hover { background: var(--surface); border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-muted), var(--card-shadow); transform: translateY(-1px); }
.quick-link:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.quick-link__icon { flex-shrink: 0; display: flex; width: 30px; height: 30px; align-items: center; justify-content: center; color: var(--accent-ink); border-radius: 7px; background: var(--accent-muted); }

.admin-panel-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 900px) { .admin-panel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.admin-panel { min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); box-shadow: var(--card-shadow); }
.admin-main > .admin-panel { margin-bottom: 20px; }
.admin-panel--spaced { margin-top: 20px; margin-bottom: 14px; }
.admin-panel__header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.admin-panel__header .admin-section__title { margin: 0; }

.admin-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.admin-list--spaced { margin-bottom: 16px; }
.admin-list__item { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--border); font-size: .8125rem; }
.admin-list__item:first-child { border-top: 0; }
.admin-list__item div { min-width: 0; display: grid; gap: 2px; }
.admin-list__item strong { overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.admin-list__item span { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-list__item time { flex-shrink: 0; color: var(--muted); font-size: .75rem; }
.admin-list__item .admin-form-actions { flex-direction: column; align-items: stretch; flex-shrink: 0; width: 160px; }
.admin-list__item .admin-form-actions form { display: flex; }
.admin-list__item .admin-form-actions .btn { width: 100%; }
.admin-batch-checkbox { flex-shrink: 0; width: 16px; height: 16px; accent-color: var(--accent); }
.admin-batch-action { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 8px; padding-top: 10px; padding-left: 22px; border-top: 1px dashed var(--border); }
.admin-batch-action__label { margin-right: auto; color: var(--muted); font-size: .75rem; }

.admin-list__item.admin-order { display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; align-items: stretch; gap: 8px; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); box-shadow: var(--card-shadow); }
.admin-order .admin-order__head { padding-bottom: 10px; border-bottom: 1px solid var(--border); }

.admin-order .admin-order__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
.admin-order .admin-order__identity { display: grid; gap: 2px; min-width: 0; }
.admin-order__identity strong { font-size: .9375rem; }
.admin-order__meta { color: var(--muted); font-size: .75rem; }
.admin-order .admin-order__booth { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 0 0; }
@media (min-width: 641px) { .admin-order .admin-order__booth { flex-wrap: nowrap; } }
.admin-order .admin-order__booth-label { display: flex; flex: 1 1 220px; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.admin-order .admin-order__booth-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 8px; }
.admin-order__booth-actions .btn { width: auto; }
.admin-order .admin-order__blocked { color: var(--danger); font-size: .75rem; white-space: normal; overflow: visible; }
.admin-choice-item { border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.admin-choice-option { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; font-size: .8125rem; cursor: pointer; }
.admin-choice-option input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--accent); }
.admin-order .admin-order__meta { white-space: normal; overflow: visible; text-overflow: clip; }


@media (max-width: 640px) {
    .admin-order .admin-order__booth { align-items: flex-start; }
    .admin-order__booth-actions { width: 100%; }
    .admin-order__booth-actions .btn { flex: 1 1 auto; }
}
.admin-batch-select-all { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .75rem; }
.admin-batch-select-all input { accent-color: var(--accent); }
.admin-empty { margin: 0; padding: 12px 0; color: var(--muted); font-size: .8125rem; }
.admin-field-note { margin: 0 0 12px; color: var(--muted); font-size: .8125rem; }

.admin-badge { flex-shrink: 0; padding: 3px 8px; color: var(--muted); border: 1px solid var(--border); border-radius: 999px; font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.admin-badge--active { color: var(--success); border-color: var(--success); background: var(--accent-muted); }
.admin-badge--pending { color: var(--warning); border-color: var(--warning); text-decoration: none; }
a.admin-badge--pending:hover { box-shadow: 0 0 0 3px var(--accent-muted); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 9px 18px; border: 1.5px solid transparent; border-radius: 8px; font-size: .875rem; font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background .15s, border-color .15s, color .15s, box-shadow .15s; }
.btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.btn--primary { color: var(--on-accent); border-color: var(--accent); background: var(--accent); }
.btn--primary:hover { border-color: var(--accent-strong); background: var(--accent-strong); box-shadow: 0 0 0 3px var(--accent-muted); }
.btn--secondary { color: var(--text); border-color: var(--border); background: var(--panel); }
.btn--secondary:hover { border-color: var(--muted); background: var(--surface); }
.btn--danger { color: var(--danger); border-color: var(--danger); background: var(--danger-muted); }
.btn--danger:hover { box-shadow: 0 0 0 3px var(--danger-muted); }
.btn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.admin-login-submit { width: 100%; }


.filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); }
.filters label { flex: 1; min-width: 160px; }
.filters input, .filters select { width: 100%; min-height: 44px; padding: 9px 11px; color: var(--text); border: 1px solid var(--border); border-radius: 8px; background: var(--surface); outline: 0; }
.filters select { width: auto; min-width: 160px; }
.filters input:focus-visible, .filters select:focus-visible { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-muted); }
.filters > a { display: inline-flex; min-height: 44px; align-items: center; padding: 8px; color: var(--muted); font-size: .8125rem; }
.filters > a.filters__add { margin-left: auto; padding: 9px 18px; color: var(--on-accent); font-size: .875rem; }

.admin-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
@media (min-width: 480px) { .admin-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.admin-stats article { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 7px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }
.admin-stats span { color: var(--muted); font-size: .625rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.admin-stats strong { font-size: 1.125rem; line-height: 1.2; }

.admin-map-card { --map-card-pad: clamp(12px, 2vw, 20px); position: relative; min-width: 0; margin-bottom: 20px; padding: var(--map-card-pad); border: 1px solid var(--border); border-radius: 12px; background: var(--panel); box-shadow: var(--card-shadow); overflow: hidden; }
.map-stage--empty { display: grid; width: 900px; height: 620px; place-items: center; padding: 24px; }
.map-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    padding: 24px;
    border: 2px dashed color-mix(in srgb, var(--text) 22%, transparent);
    border-radius: 16px;
    color: var(--muted);
    font-size: 1rem;
    text-align: center;
}
.admin-map-card .map-viewport { position: relative; width: 100%; height: clamp(340px, calc(100vw * 1.02), 560px); border-radius: 8px; }
@media (min-width: 821px) {
    .admin-map-card .map-viewport { height: clamp(480px, calc(100dvh - 190px), 900px); }
}
.booth-marker.is-active .booth-marker__pin { background: var(--available); }
.booth-marker.is-inactive .booth-marker__pin { background: var(--blocked); }
.booth-marker.is-inactive .booth-marker__pin--code { color: var(--blocked-ink); }
.booth-marker.is-inactive { opacity: .5; }

.admin-booth-list-wrap { max-height: min(calc(100vh - 170px), 1100px); margin-bottom: 20px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); overflow-y: auto; }
.admin-booth-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.admin-booth-list__item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--border); font-size: .8125rem; transition: background .15s; }
.admin-booth-list__item:first-child { border-top: 0; }
.admin-booth-list__item:hover { background: var(--surface); }
.admin-booth-list__main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.admin-booth-list__main strong { font-weight: 600; }
.admin-booth-list__main span { display: block; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.admin-booth-list__actions { display: flex; flex-shrink: 0; gap: 6px; }
.admin-list__item .admin-icon-actions { display: flex; flex-shrink: 0; gap: 6px; }

.admin-booth-list-wrap .admin-list { gap: 0; }
.admin-booth-list-wrap .admin-list__item { padding: 10px 12px; }

.admin-booth-list-wrap--orders { padding: 12px; }
.admin-booth-list-wrap--orders .admin-list { gap: 12px; }
.admin-booth-list-wrap--orders .admin-list__item.admin-order { padding: 16px; }

@media (min-width: 821px) {
    body:has(.admin-main--fit) { display: flex; flex-direction: column; height: 100dvh; overflow: hidden; }
    body:has(.admin-main--fit) .admin-main--fit { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; padding-bottom: 16px; }
    body:has(.admin-main--fit) .admin-main--fit > * { flex: 0 0 auto; }
    body:has(.admin-main--fit) .admin-booth-list-wrap { flex: 0 1 auto; min-height: 180px; max-height: none; margin-bottom: 0; }
    body:has(.admin-main--fit) .admin-group-bar { flex: 0 0 auto; margin-top: 12px; margin-bottom: 0; }
}

@media (max-width: 640px) {
    .admin-booth-list__item { flex-wrap: wrap; }
    .admin-booth-list__main { flex: 1 1 100%; }
    .admin-booth-list__actions { margin-left: auto; }
}

.admin-status-badge { flex-shrink: 0; padding: 4px 10px; border-radius: 999px; font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.admin-status-badge--available { color: #1f2530; background: var(--available); }
.admin-status-badge--reserved { color: #fff; background: var(--danger); }
.admin-status-badge--occupied { color: #06301a; background: var(--occupied); }
.admin-status-badge--active { color: #7a5c00; background: var(--status-on, #f4c746); }
html[data-theme="dark"] .admin-status-badge--active { color: #2a2000; }
.admin-status-badge--inactive { color: var(--muted); background: var(--surface); border: 1px solid var(--border); }
.admin-status-badge--group { color: var(--text); border: 1px solid var(--accent); background: var(--surface); }

.admin-booth-list__pick { display: grid; flex-shrink: 0; place-items: center; width: 44px; height: 44px; margin: -10px 0 -10px -10px; cursor: pointer; }
.admin-booth-list__pick input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); cursor: pointer; }

.admin-group-form { display: contents; }

.admin-group-bar {
    position: sticky;
    z-index: 20;
    bottom: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
    padding: 12px 16px;
    border: 1px solid var(--accent);
    border-radius: 12px;
    background: var(--panel);
    box-shadow: var(--card-shadow);
}
.admin-group-bar[hidden] { display: none; }
.admin-group-bar__status { margin: 0; font-size: .8125rem; font-weight: 650; }
.admin-group-bar__actions { display: flex; flex-wrap: wrap; gap: 8px; }

.admin-group-hint {
    display: grid;
    gap: 10px;
    justify-items: start;
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid var(--accent);
    border-radius: 10px;
    background: var(--accent-muted);
    font-size: .8125rem;
}
.admin-group-hint p { margin: 0; }
.admin-group-hint--done { color: var(--text); border-color: var(--border); background: var(--surface); }

.admin-batch-action--group { justify-content: space-between; }

.filters__refine {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    width: 100%;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.filters > .filters__add { order: 1; }
.filters__refine { order: 2; }
.filters__field { display: grid; flex: 1 1 220px; gap: 4px; min-width: 0; }
.filters__field select,
.filters__field input,
.filters__field .filters__area { width: 100%; min-width: 0; }
.filters__field .filters__area { display: flex; gap: 6px; }
.filters__field > span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.filters__or { padding-bottom: 12px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.filters__refine .btn { flex: 0 0 auto; min-height: 44px; }
.filters__refine > a { display: inline-flex; min-height: 44px; align-items: center; padding: 8px; color: var(--muted); font-size: .8125rem; }

.admin-street-picker { display: grid; gap: 6px; }

.choice-chooser {
    max-height: 260px;
    margin-top: 6px;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
}
.choice-chooser > div > div { border-top: 1px solid var(--border); }
.choice-chooser > div > div:first-child { border-top: 0; }
.choice-chooser > div > div[hidden] { display: none; }
.choice-chooser label {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    font-size: .8125rem;
    cursor: pointer;
}
.choice-chooser label:hover { background: var(--accent-muted); }
.choice-chooser input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex-shrink: 0;
    accent-color: var(--accent);
}
.choice-chooser .admin-empty { margin: 0; padding: 14px 12px; }
.choice-chooser label:has(input:checked) { color: var(--accent-ink); background: var(--accent-muted); font-weight: 700; }

.admin-map-card.is-picking .booth-marker,
.admin-map-card.is-picking .fusion-logo { cursor: copy; }
.admin-map-card.is-picking { outline: 2px solid var(--accent); outline-offset: 3px; }
.zoom-tools .fit-button.is-active { color: var(--on-accent); background: var(--accent); }

.map-select-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: var(--map-card-pad) calc(var(--map-card-pad) * -1) calc(var(--map-card-pad) * -1);
    padding: 12px 16px;
    border: 0;
    border-top: 1px solid var(--accent);
    border-radius: 0;
    background: var(--surface);
    box-shadow: none;
}
.map-select-bar[hidden] { display: none; }
.map-select-bar__status { margin: 0; font-size: .8125rem; font-weight: 650; }
.map-select-bar__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }

@media (max-width: 640px) {
    .map-select-bar__actions { width: 100%; }
    .map-select-bar__actions .btn { flex: 1 1 auto; }
}

.filters__field[hidden] { display: none; }
.filters__field--target { flex: 0 1 200px; }

@media (max-width: 640px) {
    .filters__field { flex: 1 1 100%; }
    .filters__or { width: 100%; padding: 0; text-align: center; }
    .filters__refine .btn { width: 100%; }
}

.booth-marker.is-picked,
.fusion-logo.is-picked { z-index: 6; }
.booth-marker.is-picked .booth-marker__pin {
    scale: 1.5;
    background: var(--accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 60%, transparent), 0 4px 10px rgb(0 0 0 / .35);
}
.booth-marker.is-picked .booth-marker__pin--code { color: var(--on-accent); }
.booth-marker.is-picked .booth-marker__shape path {
    fill: color-mix(in srgb, var(--accent) 16%, transparent);
    stroke: var(--accent);
}
.fusion-logo.is-picked { scale: 1; border-color: var(--accent); border-width: 3px; }
.booth-marker.is-muted,
.fusion-logo.is-muted { opacity: .25; }

.booth-group-outlines {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.booth-group-outlines path {
    fill: color-mix(in srgb, var(--accent) 10%, transparent);
    stroke: var(--accent);
    stroke-width: calc(var(--map-scale-inverse, 1) * 2);
    stroke-dasharray: calc(var(--map-scale-inverse, 1) * 6) calc(var(--map-scale-inverse, 1) * 4);
    stroke-linejoin: round;
}

.booth-group-badge {
    position: absolute;
    z-index: 2;
    top: var(--area-top);
    left: calc(var(--area-left) + var(--area-width) / 2);
    display: grid;
    min-width: calc(var(--map-scale-inverse, 1) * 18px);
    min-height: calc(var(--map-scale-inverse, 1) * 18px);
    place-items: center;
    color: var(--on-accent);
    border-radius: 999px;
    background: var(--accent);
    font-size: calc(var(--map-scale-inverse, 1) * 11px);
    font-weight: 800;
    transform: translate(-50%, -55%);
}

.admin-summary-line { margin: 0 0 16px; color: var(--muted); font-size: .8125rem; }

.action-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.action-row .btn { flex: 1; min-width: 120px; }

.pin-editor { margin-bottom: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); }
.pin-editor-viewport { position: relative; width: 100%; height: min(45dvh, 380px); overflow: hidden; border-radius: 12px 12px 0 0; background: var(--surface); cursor: grab; touch-action: none; outline: none; }
.pin-editor-viewport.is-dragging { cursor: grabbing; }
.pin-editor-map-stage { position: absolute; top: 0; left: 0; width: 820px; transform-origin: 0 0; }
.pin-editor-viewport.is-dragging .pin-editor-map-stage { will-change: transform; }
.pin-editor-map-stage img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.pin-editor-handle { position: absolute; top: var(--pin-y, 50%); left: var(--pin-x, 50%); width: 0; height: 0; padding: 0; border: 0; background: none; overflow: visible; cursor: grab; touch-action: none; }
.pin-editor-handle::before { content: ""; position: absolute; top: 50%; left: 50%; width: calc(34px * var(--map-scale-inverse, 1)); height: calc(34px * var(--map-scale-inverse, 1)); border-radius: 50%; transform: translate(-50%, -50%); }
.pin-editor-handle.is-dragging { cursor: grabbing; }
.pin-editor-zoom-tools { position: absolute; z-index: 10; bottom: 10px; right: 10px; display: flex; gap: 4px; padding: 4px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }
.pin-editor-zoom-tools button { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 8px; color: var(--text); border: 0; border-radius: 6px; background: var(--surface); font-weight: 700; font-size: .8125rem; cursor: pointer; }
.pin-editor-zoom-tools button:hover { background: var(--accent-muted); color: var(--accent-ink); }
.pin-editor-fields { display: flex; flex-wrap: wrap; gap: 10px; padding: 12px; border-top: 1px solid var(--border); }
.pin-editor-fields .admin-form-field { flex: 1 1 120px; }
.pin-editor-hint { margin: 0; padding: 0 12px 12px; color: var(--muted); font-size: .75rem; }
.pin-editor-fields--label { align-items: flex-end; }
.pin-editor-fields--label .pin-editor-hint { flex-basis: 100%; padding: 0; }
.pin-editor-fields__title { flex-basis: 100%; margin: 0; color: var(--text); font-size: .8125rem; font-weight: 600; }
.pin-editor-sliders { display: grid; gap: 12px; padding: 12px; border-top: 1px solid var(--border); }

.admin-range[hidden] { display: none; }
.admin-range { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px 12px; }
.admin-range__label { grid-column: 1 / -1; color: var(--text); font-size: .8125rem; font-weight: 600; }
.admin-range__value { min-width: 4.5rem; padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); font-variant-numeric: tabular-nums; font-size: .8125rem; text-align: center; }
.admin-range input[type="range"] { width: 100%; height: 44px; margin: 0; padding: 0; background: transparent; cursor: pointer; -webkit-appearance: none; appearance: none; }
.admin-range input[type="range"]:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 4px; border-radius: 8px; }
.admin-range input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: var(--border); }
.admin-range input[type="range"]::-moz-range-track { height: 6px; border-radius: 999px; background: var(--border); }
.admin-range input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 22px; height: 22px; margin-top: -8px; border: 3px solid var(--panel); border-radius: 50%; background: var(--accent); box-shadow: 0 1px 4px rgb(0 0 0 / .35); }
.admin-range input[type="range"]::-moz-range-thumb { width: 22px; height: 22px; border: 3px solid var(--panel); border-radius: 50%; background: var(--accent); box-shadow: 0 1px 4px rgb(0 0 0 / .35); }
.admin-range input[type="range"]:disabled { cursor: not-allowed; opacity: .5; }
.admin-range input[type="range"]:disabled::-webkit-slider-thumb { background: var(--muted); }
.admin-range input[type="range"]:disabled::-moz-range-thumb { background: var(--muted); }
.admin-range__reset { display: inline-flex; align-items: center; justify-self: start; grid-column: 1 / -1; min-height: 44px; padding: 0; border: 0; background: none; color: var(--accent-ink); font-size: .75rem; text-decoration: underline; cursor: pointer; }

.admin-booth-list__item--space { box-shadow: inset 3px 0 0 var(--accent); }
.admin-switch { display: inline-flex; align-items: center; gap: 10px; justify-self: start; min-height: 44px; padding: 0 16px 0 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: .8125rem; font-weight: 600; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.admin-switch__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--muted); transition: background .15s; }
.admin-switch[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-muted); color: var(--accent-ink); }
.admin-switch[aria-pressed="true"] .admin-switch__dot { background: var(--accent); }
.admin-switch:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.admin-decision { display: grid; gap: 8px; margin-bottom: 18px; }
.admin-decision__label { margin: 0; color: var(--muted); font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.admin-decision__list { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-decision__option { width: 100%; justify-content: flex-start; text-align: left; }
.admin-decision__list .admin-decision__option { width: auto; }
.admin-decision form { display: contents; }

.admin-form { display: grid; gap: 16px; max-width: 620px; margin: 0 0 24px; padding: clamp(16px, 3vw, 24px); border: 1px solid var(--border); border-radius: 12px; background: var(--panel); }
.admin-form-field { display: grid; gap: 6px; }
.admin-form-field label { color: var(--muted); font-size: .75rem; font-weight: 600; }
.admin-form-field input:not([type="checkbox"]), .admin-form-field select, .admin-form-field textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    outline: 0;
}
.admin-form-field textarea { min-height: 100px; resize: vertical; }
.admin-form-field input:focus-visible, .admin-form-field select:focus-visible, .admin-form-field textarea:focus-visible { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-muted); }
.admin-form-field__help { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.admin-form-field--checkbox { display: flex; flex-direction: row-reverse; align-items: center; justify-content: flex-end; gap: 8px; }
.admin-form-field--checkbox label { color: var(--text); font-size: .875rem; font-weight: 500; }
.admin-form-actions { display: flex; gap: 8px; }
.admin-form-actions--spaced { margin-top: 12px; }
.admin-form-actions--end { justify-content: flex-end; margin-top: 12px; }

.admin-code-feedback { margin: 0; min-height: 1.05rem; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.admin-code-feedback.is-free { color: var(--accent-ink); font-weight: 600; }
.admin-code-feedback.is-taken { color: var(--danger); font-weight: 600; }
.admin-area-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-area-total { grid-column: 1 / -1; margin: 0; padding: 8px 12px; border: 1px dashed var(--border); border-radius: 8px; color: var(--muted); font-size: .8125rem; }

.admin-modal-actions { display: flex; align-items: center; gap: 8px; margin-top: 14px; }
.admin-modal-actions > :last-child { margin-left: auto; }
.btn[hidden] { display: none; }

.icon-action { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; padding: 0; border: 1.5px solid var(--border); border-radius: 8px; background: var(--panel); color: var(--muted); cursor: pointer; text-decoration: none; transition: border-color .15s, background-color .15s, color .15s, transform .15s; }
.icon-action svg { width: 16px; height: 16px; flex-shrink: 0; }
.icon-action--delete { border-color: var(--danger); background: var(--danger-muted); color: var(--danger); }
.icon-action:hover { transform: translateY(-1px); border-color: var(--accent); background: var(--accent-muted); color: var(--accent-ink); }
.icon-action--delete:hover { border-color: var(--danger); background: var(--danger-muted); color: var(--danger); }
.icon-action:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

.admin-text-danger { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; padding: 0; border: 0; background: none; color: var(--danger); font-size: .8125rem; font-weight: 600; cursor: pointer; }
.admin-text-danger svg { width: 14px; height: 14px; flex-shrink: 0; }
.admin-text-danger:hover { text-decoration: underline; }
.admin-inline-confirm { margin-top: 10px; padding: 14px; border: 1px solid var(--danger); border-radius: 10px; background: var(--danger-muted); }
.admin-inline-confirm p { margin: 0 0 12px; color: var(--text); font-size: .8125rem; line-height: 1.5; }

.admin-dialog { position: fixed; inset: 0; z-index: 100; width: min(560px, calc(100% - 32px)); max-height: min(85dvh, 720px); margin: auto; padding: 0; overflow: hidden; color: var(--text); border: 1px solid var(--border); border-radius: 14px; background: var(--panel); box-shadow: var(--card-shadow); }
.admin-dialog:has(.pin-board) { width: min(1080px, calc(100% - 40px)); max-height: min(92dvh, 940px); }
.admin-dialog:has(.pin-board) .admin-dialog__content { max-height: min(92dvh, 940px); }
.admin-dialog::backdrop { background: color-mix(in srgb, var(--backdrop) 78%, transparent); backdrop-filter: blur(6px); }
.admin-ask { width: min(420px, calc(100% - 32px)); max-height: none; z-index: 120; }
.admin-ask__form { display: grid; gap: 12px; padding: 22px 24px; }
.admin-ask__title { margin: 0; font-size: 1.125rem; font-weight: 800; letter-spacing: -.01em; }
.admin-ask__text { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.admin-ask__text[hidden] { display: none; }
.admin-ask__field { display: grid; gap: 5px; }
.admin-ask__field[hidden] { display: none; }
.admin-ask__field input { width: 100%; min-height: 44px; padding: 10px 12px; color: var(--text); border: 1.5px solid var(--border); border-radius: 8px; background: var(--surface); outline: 0; }
.admin-ask__field input:focus-visible { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-muted); }
.admin-ask .admin-field-error[hidden] { display: none; }
.admin-ask__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.admin-ask__actions .btn { min-height: 44px; }
@media (max-width: 700px) { .admin-ask__actions { flex-direction: column-reverse; } .admin-ask__actions .btn { width: 100%; justify-content: center; } }
.admin-dialog__content { display: flex; flex-direction: column; max-height: min(85dvh, 720px); padding: 0; overflow: hidden; }
.admin-dialog-close { position: absolute; z-index: 2; top: 12px; right: 12px; display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; padding: 0; color: var(--muted); border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.admin-dialog-close:hover { color: var(--text); background: var(--surface); }
.admin-dialog-close:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.admin-modal-header { padding-right: 32px; margin-bottom: 14px; }
.admin-modal-header__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.admin-modal-header__actions { display: flex; flex-shrink: 0; gap: 6px; }
.admin-modal-header h2 { margin: 4px 0 8px; font-size: 1.375rem; font-weight: 800; letter-spacing: -.015em; }
.admin-modal-header .admin-status-badge { margin-right: 8px; }
.admin-modal-loading { padding: 40px 0; color: var(--muted); text-align: center; }

.admin-dialog__content .admin-modal-header { flex-shrink: 0; margin: 0; padding: 24px 56px 14px 24px; background: var(--panel); border-bottom: 1px solid var(--border); }
.admin-dialog__content > form.admin-form { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; max-width: none; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.admin-modal-body { min-height: 0; }
.admin-dialog__content .admin-modal-body { display: grid; flex: 1; gap: 16px; align-content: start; padding: 20px 24px; overflow-y: auto; overflow-anchor: none; }
.admin-dialog__content .admin-modal-actions { flex-shrink: 0; margin: 0; padding: 14px 24px; background: var(--panel); border-top: 1px solid var(--border); }

.admin-dialog__content .admin-form { max-width: none; margin: 0; padding: 0; gap: 14px; border: 0; border-radius: 0; background: none; box-shadow: none; }
.admin-dialog__content .admin-modal-body > .admin-panel { padding: 12px 14px; border: 0; border-radius: 10px; background: var(--surface); box-shadow: none; }
.admin-dialog__content .admin-panel--spaced { margin: 0; }
.admin-dialog__content .admin-modal-body > .admin-text-link { min-height: 0; margin-bottom: 2px; }
.admin-dialog__content .admin-field-note { margin: 0; }
.admin-dialog__content .admin-text-danger { margin-top: 2px; }

.sale-client { display: grid; gap: 10px; padding: 14px; border-radius: 10px; background: var(--surface); }
.sale-client__id { display: flex; align-items: center; gap: 12px; }
.sale-client__logo { width: 44px; height: 44px; flex-shrink: 0; object-fit: contain; border-radius: 8px; background: var(--panel); }
.sale-client__logo--empty { display: inline-flex; align-items: center; justify-content: center; color: var(--muted); font-size: 1.125rem; font-weight: 700; text-transform: uppercase; }
.sale-client__text { min-width: 0; }
.sale-client__name { margin: 0; font-size: 1rem; font-weight: 700; overflow-wrap: anywhere; }
.sale-client__meta { margin: 2px 0 0; color: var(--muted); font-size: .8125rem; }
.sale-client__notes { margin: 0; padding-top: 10px; border-top: 1px solid var(--border); color: var(--muted); font-size: .8125rem; line-height: 1.5; overflow-wrap: anywhere; }
.sale-client .admin-text-link { min-height: 0; }

.admin-summary-name { margin: 0 0 4px; font-size: 1rem; font-weight: 700; }
.admin-summary-meta-line { margin: 0 0 2px; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.admin-summary-meta { color: var(--muted); font-size: .8125rem; }

.admin-modal-section { padding-top: 16px; border-top: 1px solid var(--border); }
.admin-modal-section:first-child { padding-top: 0; border-top: 0; }
.admin-modal-section .admin-section__title { margin: 0 0 10px; }

.admin-modal-subtitle { margin: 0; color: var(--muted); font-size: .8125rem; }
.admin-segmented { display: flex; gap: 4px; margin-bottom: 12px; padding: 4px; border: 1.5px solid var(--border); border-radius: 10px; background: var(--surface); }
.admin-segmented__option { flex: 1; padding: 7px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font-size: .8125rem; font-weight: 600; cursor: pointer; transition: background-color .15s, color .15s; }
.admin-segmented__option:hover { color: var(--text); }
.admin-segmented__option[aria-pressed="true"] { background: var(--panel); color: var(--accent-ink); box-shadow: var(--card-shadow); }
.admin-segmented__option:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
@media (max-width: 640px) {
    .admin-segmented__option { min-height: 44px; }
}
.layout-preview__frame { position: relative; width: 100%; height: clamp(240px, 42dvh, 520px); border: 1px solid var(--border); border-radius: 10px; background: var(--surface); overflow: hidden; }
.layout-preview__frame .zoom-tools { top: 10px; right: 10px; bottom: auto; }
.layout-preview__frame .zoom-tools button { min-width: 36px; height: 36px; }
.layout-preview__frame .zoom-tools .fit-icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.layout-preview__actions { flex-wrap: wrap; row-gap: 8px; }
.layout-editor__actions { flex-wrap: wrap; row-gap: 8px; }
.layout-editor__actions form { display: contents; }
.admin-modal-actions [hidden] { display: none; }
.pin-board { display: grid; gap: 12px; }
.pin-board__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pin-board__status { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.pin-board__actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.pin-board__actions .icon-action[disabled] { opacity: .38; cursor: not-allowed; }
.layout-editor__sources { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.layout-editor__import, .layout-editor__copy { display: grid; align-items: center; gap: 8px; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.layout-editor__import .admin-field__label, .layout-editor__copy .admin-field__label { grid-column: 1 / -1; margin: 0; }
.layout-editor__import input[type="file"] { min-width: 0; max-width: 100%; color: var(--text); font-size: .8125rem; }
.layout-editor__copy select { min-width: 0; max-width: 100%; min-height: 38px; padding: 7px 10px; border: 1.5px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); font-size: .8125rem; }
.layout-editor__import .btn, .layout-editor__copy .btn { white-space: nowrap; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
.admin-choice-group { margin: 0 0 16px; padding: 0; border: 0; }
.admin-choice-group legend { padding: 0; margin-bottom: 6px; color: var(--text); font-size: .8125rem; font-weight: 600; }
.admin-choice-group__options { display: grid; gap: 8px; }
@media (min-width: 480px) { .admin-choice-group__options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.admin-choice { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); font-size: .875rem; cursor: pointer; }
.admin-choice:hover { border-color: var(--accent); }
.admin-choice:has(input:checked) { border-color: var(--accent); background: var(--accent-muted); font-weight: 600; }
.admin-choice:has(input:focus-visible) { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.admin-choice input { width: 17px; height: 17px; accent-color: var(--accent); }
.admin-status-badge--neutral { color: var(--muted); background: var(--surface); border: 1px solid var(--border); }
.pin-board__frame { position: relative; width: 100%; height: clamp(240px, 42dvh, 620px); border: 1px solid var(--border); border-radius: 10px; background: var(--surface); overflow: hidden; }
.pin-board__frame .zoom-tools { top: 10px; right: 10px; bottom: auto; }
.pin-board__frame .zoom-tools button { min-width: 36px; height: 36px; }
.pin-board__frame .zoom-tools .fit-icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pin-board__pin { position: absolute; top: var(--pin-y, 50%); left: var(--pin-x, 50%); width: 14px; height: 14px; padding: 0; border: 2px solid rgb(255 255 255 / .92); border-radius: 50%; background: var(--available); box-shadow: 0 2px 6px rgb(0 0 0 / .35); transform: translate(-50%, -50%) scale(var(--map-scale-inverse, 1)); cursor: grab; touch-action: none; }
.pin-board__pin:hover { z-index: 3; filter: brightness(1.12); }
.pin-board__pin:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.pin-board__pin.is-off { background: var(--muted); }
.pin-board__pin.is-chosen { z-index: 4; background: var(--picked, #2788ff); box-shadow: 0 0 0 3px color-mix(in srgb, var(--picked, #2788ff) 45%, transparent), 0 3px 8px rgb(0 0 0 / .35); }
.pin-board.is-moving .pin-board__pin.is-chosen { cursor: grabbing; }
.pin-board.is-placing .pin-board__frame { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-muted); }
.pin-board.is-placing .map-viewport,
.pin-board.is-placing .pin-board__pin { cursor: crosshair; }
.pin-board.is-placing .pin-board__status { color: var(--accent-ink); font-weight: 700; }
.pin-board.is-placing [data-pin-add] { color: var(--accent-ink); border-color: var(--accent); background: var(--accent-muted); }
.pin-board__confirm { padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.pin-board__confirm[hidden] { display: none; }
.pin-board__confirm p { margin: 0 0 10px; font-size: .84rem; }
.pin-board__panel { padding: 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.pin-board__panel[hidden] { display: none; }
.pin-fields { display: grid; gap: 12px; }
.pin-fields__head { display: flex; align-items: baseline; gap: 8px; }
.pin-fields__head strong { font-size: .95rem; font-weight: 800; }
.pin-fields__head span { color: var(--muted); font-size: .78rem; }
.pin-fields__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-inline-filter { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.admin-inline-filter label { flex: 1; min-width: 0; }
.admin-inline-filter input { width: 100%; }
.admin-inline-filter__count { color: var(--muted); font-size: .75rem; font-weight: 650; white-space: nowrap; }
.admin-booth-list__item[hidden] { display: none; }
.layout-preview--map-only [data-preview-pins] { display: none; }
.layout-preview--pins-only [data-preview-map] { visibility: hidden; }
.admin-field-grid { display: grid; gap: 12px; }
@media (min-width: 480px) { .admin-field-grid--split { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.admin-field { min-width: 0; }
.admin-field + .admin-field-grid, .admin-field-grid + .admin-field { margin-top: 12px; }
.admin-field__label { display: block; margin-bottom: 5px; color: var(--text); font-size: .8125rem; font-weight: 600; line-height: 1.3; }
.admin-field__value { margin: 0; min-height: 38px; padding: 8px 11px; border: 1.5px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); font-size: .875rem; line-height: 1.45; overflow-wrap: anywhere; }
.admin-field__value--muted { color: var(--muted); }
.admin-field__value--multiline { min-height: 72px; white-space: pre-wrap; }
.admin-field__value a { color: var(--accent-ink); }
.admin-logo-preview { display: block; max-width: 180px; max-height: 90px; margin-bottom: 8px; padding: 8px; border: 1.5px solid var(--border); border-radius: 8px; background: var(--surface); object-fit: contain; }

@media (max-width: 600px) {
    .admin-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
    .admin-dialog__content { max-height: calc(100dvh - 20px); }
    .admin-dialog__content .admin-modal-header { padding: 18px 50px 14px 18px; }
    .admin-dialog__content .admin-modal-body { padding: 16px 18px; }
    .admin-dialog__content .admin-modal-actions { padding: 14px 18px; }
}

.admin-login-page { display: grid; place-items: center; min-height: 100dvh; padding: 24px; background: var(--bg); }
.admin-login-back { position: fixed; top: 16px; left: 16px; display: inline-flex; min-height: 44px; align-items: center; color: var(--muted); font-size: .8125rem; font-weight: 600; text-decoration: none; }
.admin-login-back:hover { color: var(--text); }
.admin-login-theme { position: fixed; top: 16px; right: 16px; }
.admin-login-shell { width: min(380px, 100%); }
.admin-login-card { padding: 28px 24px; border: 1px solid var(--border); border-radius: 14px; background: var(--panel); box-shadow: var(--card-shadow); text-align: center; }
.admin-login-logo { height: 36px; margin: 0 auto 16px; }
.admin-login-card h1 { margin: 0; font-size: 1.375rem; font-weight: 800; letter-spacing: -.015em; }
.admin-login-copy { margin: 8px 0 20px; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.admin-login-card form { display: grid; gap: 6px; text-align: left; }
.admin-login-card label { margin-top: 10px; color: var(--muted); font-size: .75rem; font-weight: 600; }
.admin-login-card input { width: 100%; min-height: 44px; padding: 10px 12px; color: var(--text); border: 1px solid var(--border); border-radius: 8px; background: var(--surface); outline: 0; }
.admin-login-card input:focus-visible { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-muted); }
.admin-login-help { margin: 14px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.admin-login-help ul { margin: 4px 0 0; padding-left: 18px; }
.admin-login-help-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; margin-top: 10px; color: var(--muted); font-size: .8125rem; font-weight: 600; text-decoration: none; }
.admin-login-help-link:hover { color: var(--text); }
.admin-login-help-link:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-radius: 8px; }

.admin-form--wide { max-width: 100%; }

.appearance-group + .appearance-group { padding-top: 18px; border-top: 1px solid var(--border); }
.appearance-group__title { margin: 0 0 12px; color: var(--text); font-size: .875rem; font-weight: 700; }
.appearance-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.appearance-grid[hidden] { display: none; }

.appearance-themes {
    --ap-bg: #ffffff;
    --ap-surface: #f5f7fc;
    --ap-text: #16203c;
    --ap-muted: #5c6483;
    --ap-accent: #dfdd08;
    --ap-on-accent: #16203c;
    --ap-line: color-mix(in srgb, var(--ap-text) 16%, transparent);
    padding: 20px;
    border: 1px solid var(--ap-line);
    border-radius: 14px;
    background: var(--ap-bg);
    box-shadow: 0 6px 22px rgb(0 0 0 / .22);
    color: var(--ap-text);
    transition: background-color .24s ease, color .24s ease, border-color .24s ease;
}
.appearance-group + .appearance-themes { border-top: 1px solid var(--ap-line); }

.appearance-themes__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.appearance-themes__naming { min-width: 0; }
.appearance-themes .appearance-group__title { margin: 0; color: var(--ap-text); }
.appearance-themes__hint { margin: 4px 0 0; max-width: 46ch; color: var(--ap-muted); font-size: .74rem; line-height: 1.45; }

.appearance-themes .admin-form-field > label { color: var(--ap-muted); }
.appearance-themes .appearance-color { padding: 12px; border: 1px solid var(--ap-line); border-radius: 10px; background: var(--ap-surface); transition: background-color .24s ease, border-color .24s ease; }
.appearance-themes .appearance-color input[type="color"] { border-color: var(--ap-line); background: var(--ap-bg); }
.appearance-themes .appearance-color code { color: var(--ap-muted); }

@media (prefers-reduced-motion: reduce) {
    .appearance-themes,
    .appearance-themes .appearance-color { transition: none; }
}

.appearance-color__control { display: flex; align-items: center; gap: 10px; }
.appearance-color input[type="color"] { flex: 0 0 auto; width: 44px; height: 40px; padding: 3px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); cursor: pointer; }
.appearance-color code { color: var(--muted); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }


.appearance-logo__art { display: block; flex: 0 0 auto; box-sizing: border-box; width: 88px; height: 52px; overflow: hidden; padding: 6px; border: 1px solid var(--border); border-radius: 8px; }
.appearance-logo__art--light { background: #ffffff; }
.appearance-logo__art--dark { background: #16203c; }
.appearance-logo__art--wide { width: 100%; height: 160px; margin-bottom: 16px; padding: 20px; }
.appearance-logo__art img { display: block; width: 100%; height: 100%; object-fit: contain; }

.theme-chips { display: inline-flex; flex: 0 0 auto; gap: 3px; padding: 4px; border: 1px solid var(--border); border-radius: 8px; }
.theme-chips i { width: 16px; height: 26px; border-radius: 4px; }

.appearance-logo__link { color: var(--accent-ink); font-size: .78rem; overflow-wrap: anywhere; }

.admin-summary-list { display: grid; gap: 10px; margin: 0; }
.admin-summary-list > div { display: grid; gap: 2px; }
.admin-summary-list dt { color: var(--muted); font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.admin-summary-list dd { margin: 0; font-size: .8125rem; overflow-wrap: anywhere; }
.admin-summary-list code { font-size: .78rem; }

.appearance-color__name { color: var(--ap-muted, var(--muted)); font-size: .8125rem; font-weight: 600; }
.appearance-color__chip { display: block; width: 44px; height: 40px; border: 1px solid var(--ap-line, var(--border)); border-radius: 8px; }

.appearance-preview { display: grid; gap: 12px; }
.appearance-preview__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.appearance-preview__scenes { display: flex; flex-wrap: wrap; gap: 6px; }
.appearance-preview__scene { min-height: 34px; padding: 0 12px; color: var(--muted); border: 1px solid var(--border); border-radius: 999px; background: transparent; font-size: .74rem; font-weight: 700; cursor: pointer; }
.appearance-preview__scene[aria-selected="true"] { color: var(--on-accent); border-color: var(--accent); background: var(--accent); }

.appearance-preview__stage {
    --pv-bg: #ffffff;
    --pv-surface: #f5f7fc;
    --pv-text: #16203c;
    --pv-muted: #5c6483;
    --pv-accent: #dfdd08;
    --pv-accent-ink: #6d6c04;
    --pv-on-accent: #16203c;
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
}

.appearance-preview__viewport { display: flex; align-items: center; gap: 10px; }
.appearance-preview__arrow { flex: 0 0 auto; width: 34px; height: 34px; color: var(--text); border: 1px solid var(--border); border-radius: 50%; background: transparent; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.appearance-preview__arrow:hover { background: var(--accent-muted); }
.appearance-preview__caption { margin: 0; color: var(--muted); font-size: .74rem; text-align: center; }

.appearance-preview__screen {
    flex: 1 1 auto;
    display: grid;
    grid-template-rows: 30px minmax(0, 1fr);
    height: 210px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--pv-bg);
    transition: background .18s ease;
}
.appearance-preview__screen[hidden] { display: none; }

.pv-header { display: flex; align-items: center; justify-content: space-between; padding: 0 10px; background: color-mix(in srgb, var(--pv-bg) 82%, #000); }
.pv-brand { width: 34px; height: 10px; border-radius: 3px; background: var(--pv-accent); }
.pv-dots { display: flex; gap: 4px; }
.pv-dots i { width: 10px; height: 10px; border-radius: 50%; background: color-mix(in srgb, var(--pv-text) 30%, transparent); }

.pv-body { display: grid; gap: 12px; padding: 14px; }
.pv-body--hero { grid-template-columns: 1.15fr .85fr; align-items: center; }
.pv-body--map { grid-template-rows: minmax(0, 1fr) auto; }
.pv-body--form { grid-template-columns: 1fr 1fr; align-items: center; }
.pv-body--admin { align-content: start; }

.pv-hero { display: grid; gap: 6px; }
.pv-eyebrow { width: 52px; height: 5px; border-radius: 2px; background: var(--pv-accent-ink); }
.pv-title { width: 88%; height: 12px; border-radius: 3px; background: var(--pv-text); }
.pv-title--short { width: 58%; }
.pv-cta { width: 76%; height: 15px; margin-top: 5px; border-radius: 5px; background: var(--pv-accent); }
.pv-cta--ghost { margin-top: 0; background: transparent; box-shadow: inset 0 0 0 1.5px var(--pv-accent); }
.pv-cta--small { width: 56px; margin-top: 2px; }

.pv-card { display: grid; gap: 6px; align-content: start; min-height: 84px; padding: 10px; border: 1px solid color-mix(in srgb, var(--pv-text) 22%, transparent); border-radius: 8px; background: var(--pv-surface); }
.pv-card__label { width: 40px; height: 4px; border-radius: 2px; background: var(--pv-muted); }
.pv-card__line { height: 4px; border-radius: 2px; background: color-mix(in srgb, var(--pv-muted) 60%, transparent); }
.pv-card__line:last-child { width: 70%; }

.pv-map { position: relative; border-radius: 8px; background: color-mix(in srgb, var(--pv-surface) 70%, var(--pv-bg)); background-image: linear-gradient(color-mix(in srgb, var(--pv-text) 12%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--pv-text) 12%, transparent) 1px, transparent 1px); background-size: 14px 14px; }
.pv-map--soft { min-height: 90px; }
.pv-pin { position: absolute; left: var(--pv-x); top: var(--pv-y); width: 9px; height: 9px; border: 1.5px solid var(--pv-on-accent); border-radius: 50%; background: var(--pv-accent); transform: translate(-50%, -50%); }
.pv-search { height: 13px; border-radius: 6px; background: var(--pv-surface); }

.pv-form { display: grid; gap: 6px; align-content: start; }
.pv-field { height: 13px; border-radius: 5px; background: var(--pv-surface); }

.pv-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 6px; }
.pv-stats span { height: 26px; border-radius: 6px; background: var(--pv-surface); }
.pv-rows { display: grid; gap: 5px; margin-top: 8px; }
.pv-rows span { height: 11px; border-radius: 4px; background: color-mix(in srgb, var(--pv-surface) 80%, var(--pv-bg)); }

@media (max-width: 700px) {
    .appearance-logo { flex-wrap: wrap; }
    .appearance-grid { grid-template-columns: 1fr; }
    .appearance-preview__screen { height: 220px; }
    .pv-body--hero, .pv-body--form { grid-template-columns: 1fr; }
    .filters { display: grid; grid-template-columns: 1fr; gap: 10px; padding: 12px; }
    .filters label { min-width: 0; }
    .filters input, .filters select { width: 100%; min-width: 0; }
    .filters .btn { width: 100%; min-height: 44px; justify-content: center; }
    .filters > a { justify-content: center; }
    .filters > a.filters__add { margin-left: 0; }

    .admin-booth-list-wrap { max-height: none; }
    .admin-booth-list__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px; padding: 12px; }
    .admin-booth-list__main { grid-column: 1; }
    .admin-booth-list__main span { white-space: normal; }
    .admin-booth-list__item > .admin-status-badge { grid-column: 2; justify-self: end; }
    .admin-booth-list__actions { grid-column: 1 / -1; margin-left: 0; justify-content: flex-start; flex-wrap: wrap; gap: 8px; }
    .admin-booth-list__actions .icon-action svg { width: 18px; height: 18px; }

    .admin-dialog-close { width: 44px; height: 44px; top: 8px; right: 8px; }
    .admin-dialog .zoom-tools button { min-width: 44px; height: 44px; }
    .admin-dialog__content .admin-modal-header { padding-right: 18px; }
    .admin-modal-header__top { flex-flow: row wrap; align-items: center; gap: 6px; padding-right: 38px; }
    .admin-modal-header .admin-status-badge { margin-right: 0; }
    .admin-modal-header__top h2 { flex: 1 1 100%; margin: 0; }
    .layout-editor__sources { gap: 10px; }
    .layout-editor__import, .layout-editor__copy { grid-template-columns: minmax(0, 1fr); }
    .layout-editor__copy select { min-height: 44px; }
    .layout-editor__import input[type="file"] { min-height: 44px; padding: 10px 0; }
    .layout-editor__import .btn, .layout-editor__copy .btn { width: 100%; justify-content: center; }
    .pin-board__bar { flex-wrap: wrap; }
    .pin-board__status { flex: 1 1 100%; order: 2; }
    .pin-board__actions { order: 1; width: 100%; justify-content: flex-end; }
    .pin-board__actions .icon-action { width: 44px; height: 44px; }
}
.admin-login-submit { margin-top: 16px; }
.password-input-wrapper { position: relative; }
.password-input-wrapper input { padding-right: 44px; }
.admin-password-toggle { position: absolute; top: 50%; right: 2px; display: grid; width: 36px; height: 36px; padding: 0; place-items: center; color: var(--muted); border: 0; border-radius: 8px; background: transparent; cursor: pointer; transform: translateY(-50%); }
.admin-password-toggle:hover { color: var(--text); background: var(--surface); }
.admin-password-toggle:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.admin-password-toggle svg[hidden] { display: none; }
.admin-field-error { margin: 4px 0 0; color: var(--danger); font-size: .75rem; }
.admin-form-errors { margin-bottom: 14px; padding: 10px 12px; color: var(--danger); border: 1px solid var(--danger); border-radius: 8px; background: var(--danger-muted); font-size: .8125rem; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
