:root {
    --pl-line: color-mix(in srgb, var(--bs-border-color, #dee2e6) 75%, transparent);
    --pl-soft: color-mix(in srgb, var(--insp-primary) 5%, var(--bs-body-bg, #fff));
    --pl-softer: color-mix(in srgb, var(--bs-body-color, #212529) 4%, var(--bs-body-bg, #fff));
    --pl-hover: color-mix(in srgb, var(--insp-primary) 7%, var(--bs-body-bg, #fff));
    --pl-active: color-mix(in srgb, var(--insp-primary) 13%, var(--bs-body-bg, #fff));
    --pl-muted: var(--bs-secondary-color, #6c757d);
    --pl-radius: 12px;
    --pl-shadow: 0 10px 30px rgba(14, 42, 71, 0.18);
    --pl-ok: #198754;
    --pl-warn: #b7791f;
    --pl-bad: #dc3545;
    --pi-grip: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='black'%3E%3Ccircle cx='9' cy='6' r='1.6'/%3E%3Ccircle cx='15' cy='6' r='1.6'/%3E%3Ccircle cx='9' cy='12' r='1.6'/%3E%3Ccircle cx='15' cy='12' r='1.6'/%3E%3Ccircle cx='9' cy='18' r='1.6'/%3E%3Ccircle cx='15' cy='18' r='1.6'/%3E%3C/g%3E%3C/svg%3E");
    --pi-history: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 12a8.5 8.5 0 1 0 2.5-6'/%3E%3Cpath d='M3 4v4h4'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
    --pi-swap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h13l-3.5-3.5M20 16H7l3.5 3.5'/%3E%3C/svg%3E");
    --pi-move: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 13h6M12.5 10.5 15 13l-2.5 2.5'/%3E%3C/svg%3E");
    --pi-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E");
    --pi-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E");
    --pi-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    --pi-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E");
    --pi-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
    --pi-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.5 20h19z'/%3E%3Cpath d='M12 10v4.5M12 17.5v.2'/%3E%3C/svg%3E");
    --pi-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16M15 10h4a1 1 0 0 1 1 1v10M3 21h18M8 8h3M8 12h3M8 16h3'/%3E%3C/svg%3E");
    --pi-project: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='4' y='13' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='13' width='7' height='7' rx='1.5'/%3E%3C/svg%3E");
    --pi-note: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h14v11l-5 5H5z'/%3E%3Cpath d='M14 20v-5h5M8.5 8.5h7M8.5 12h4'/%3E%3C/svg%3E");
    --pi-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5'/%3E%3C/svg%3E");
    --pi-camera: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-2.5h6L17 8h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E");
    --pi-camera-off: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-2.5h6L17 8h3v11H4z'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E");
    --pi-value: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 4 7 20M17 4l-2 16M4.5 9h16M3.5 15h16'/%3E%3C/svg%3E");
    --pi-price: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M3.5 12.5 12 4h8v8l-8.5 8.5z'/%3E%3Ccircle cx='16' cy='8' r='1.5'/%3E%3C/svg%3E");
    --pi-job: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4.5' width='14' height='16' rx='2'/%3E%3Cpath d='M9 3.5h6v3H9zM12 10.5v6M9 13.5h6'/%3E%3C/svg%3E");
    --pi-split: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20v-7M12 13 6 6M12 13l6-7M4 6h4V2M20 6h-4V2' transform='translate(0 1)'/%3E%3C/svg%3E");
    --pi-series: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M10 6h10M10 12h10M10 18h10M4 5.5h2v2M4 11h2l-2 2.5h2M4 17h2v3H4'/%3E%3C/svg%3E");
    --pi-paste: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M8 5H6a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2'/%3E%3Crect x='8' y='3' width='8' height='4' rx='1'/%3E%3C/svg%3E");
    --pi-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E");
    --pi-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v4h4'/%3E%3C/svg%3E");
}

html[data-bs-theme="dark"] {
    --pl-shadow: 0 12px 34px rgba(0, 0, 0, 0.55);
    --pl-ok: #4cc38a;
    --pl-warn: #f0b45e;
    --pl-bad: #ff6b7a;
}

.pi {
    display: inline-block;
    flex: 0 0 auto;
    width: 1.05em;
    height: 1.05em;
    vertical-align: -0.16em;
    background: currentColor;
    -webkit-mask: var(--pi-icon) center / contain no-repeat;
    mask: var(--pi-icon) center / contain no-repeat;
}

.pi-grip { --pi-icon: var(--pi-grip); }
.pi-history { --pi-icon: var(--pi-history); }
.pi-swap { --pi-icon: var(--pi-swap); }
.pi-move { --pi-icon: var(--pi-move); }
.pi-up { --pi-icon: var(--pi-up); }
.pi-down { --pi-icon: var(--pi-down); }
.pi-chevron { --pi-icon: var(--pi-chevron); }
.pi-pin { --pi-icon: var(--pi-pin); }
.pi-check { --pi-icon: var(--pi-check); }
.pi-alert { --pi-icon: var(--pi-alert); }
.pi-building { --pi-icon: var(--pi-building); }
.pi-project { --pi-icon: var(--pi-project); }
.pi-note { --pi-icon: var(--pi-note); }
.pi-search { --pi-icon: var(--pi-search); }
.pi-camera { --pi-icon: var(--pi-camera); }
.pi-camera-off { --pi-icon: var(--pi-camera-off); }
.pi-value { --pi-icon: var(--pi-value); }
.pi-price { --pi-icon: var(--pi-price); }
.pi-job { --pi-icon: var(--pi-job); }
.pi-split { --pi-icon: var(--pi-split); }
.pi-series { --pi-icon: var(--pi-series); }
.pi-paste { --pi-icon: var(--pi-paste); }
.pi-upload { --pi-icon: var(--pi-upload); }
.pi-file { --pi-icon: var(--pi-file); }

.btn .pi,
.pmenu-item .pi,
.btn .act-icon,
.pmenu-item .act-icon {
    margin-right: 0.4rem;
}

.pmenu-item .act-icon {
    width: 1.05em;
    color: var(--pl-muted);
    text-align: center;
}

.pbtn-icon .act-icon {
    font-size: 1.1rem;
}

.pbtn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: none;
    color: var(--pl-muted);
    cursor: pointer;
    transition: background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);
}

    .pbtn-icon:hover,
    .pbtn-icon[aria-expanded="true"] {
        background: var(--pl-active);
        color: var(--insp-primary-dark);
    }

    .pbtn-icon:focus-visible,
    .pnav-item:focus-visible,
    .pa-open:focus-visible,
    .pgroup-toggle:focus-visible,
    .pmenu-item:focus-visible {
        outline: 2px solid var(--insp-primary);
        outline-offset: 1px;
    }

    .pbtn-icon .pi {
        width: 1.1rem;
        height: 1.1rem;
    }

.pmenu {
    position: relative;
    display: inline-flex;
}

.pmenu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1029;
}

.pmenu-list {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 1030;
    min-width: 13.5rem;
    max-width: min(22rem, calc(100vw - 1.5rem));
    max-height: min(62vh, 28rem);
    overflow-y: auto;
    padding: 0.3rem;
    border: 1px solid var(--pl-line);
    border-radius: 10px;
    background: var(--bs-body-bg, #fff);
    box-shadow: var(--pl-shadow);
    text-align: left;
}

    .pmenu-list.start {
        right: auto;
        left: 0;
    }

.pmenu.up .pmenu-list {
    top: auto;
    bottom: calc(100% + 4px);
}

.pmenu-item {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 2.2rem;
    padding: 0.35rem 0.6rem;
    border: 0;
    border-radius: 7px;
    background: none;
    color: var(--bs-body-color);
    font-size: var(--fs-sm);
    text-align: left;
    white-space: normal;
    cursor: pointer;
}

    .pmenu-item:hover:not(:disabled) {
        background: var(--pl-hover);
    }

    .pmenu-item:disabled {
        opacity: 0.45;
        cursor: default;
    }

    .pmenu-item .pi {
        color: var(--pl-muted);
    }

    .pmenu-item.danger,
    .pmenu-item.danger .pi,
    .pmenu-item.danger .act-icon {
        color: var(--pl-bad);
    }

    .pmenu-item.pmenu-indent {
        padding-left: 1rem;
    }

.pmenu-sep {
    height: 1px;
    margin: 0.3rem 0.2rem;
    background: var(--pl-line);
}

.pmenu-label {
    padding: 0.4rem 0.6rem 0.15rem;
    color: var(--pl-muted);
    font-size: var(--fs-2xs);
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.prules {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.prule {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.08rem 0.5rem;
    border: 1px solid var(--pl-line);
    border-radius: 999px;
    background: var(--pl-softer);
    color: var(--bs-body-color);
    font-size: var(--fs-2xs);
    line-height: 1.5;
    white-space: nowrap;
}

    .prule .pi {
        width: 0.85rem;
        height: 0.85rem;
        color: var(--pl-muted);
    }

.prule-camera {
    border-color: color-mix(in srgb, var(--insp-primary) 35%, transparent);
    background: color-mix(in srgb, var(--insp-primary) 9%, var(--bs-body-bg, #fff));
}

.prules-empty {
    color: var(--pl-muted);
    font-size: var(--fs-xs);
}

.pcount {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    background: var(--pl-softer);
    color: var(--pl-muted);
    font-size: var(--fs-2xs);
    font-weight: 600;
    white-space: nowrap;
}

.place-hero {
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    max-width: none;
}

    .place-hero.archived {
        border-left: 4px solid var(--bs-secondary-color, #6c757d);
    }

.place-hero-body {
    display: flex;
    gap: 1rem 1.5rem;
    align-items: stretch;
}

.place-hero-info {
    flex: 1 1 auto;
    min-width: 0;
}

.place-hero-image {
    align-self: flex-start;
}

.place-cell {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.place-cell-text {
    min-width: 0;
}

.place-thumb {
    display: inline-flex;
    flex: 0 0 auto;
    text-decoration: none;
}

.place-hero-top {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.place-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex: 1 1 auto;
    color: var(--pl-muted);
    font-size: var(--fs-2xs);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.place-hero-name {
    margin: 0.2rem 0 0.25rem;
    color: var(--insp-text);
    font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.85rem);
    font-weight: 650;
    line-height: 1.2;
    overflow-wrap: break-word;
}

.place-hero-address {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: var(--fs-md);
}

    .place-hero-address > .pi {
        margin-top: 0.2em;
        color: var(--insp-primary);
    }

.place-hero-address-text {
    min-width: 0;
    overflow-wrap: anywhere;
}

.place-hero-parts {
    margin-left: 0.35rem;
    color: var(--pl-muted);
    font-size: var(--fs-sm);
}

.place-hero-meta {
    display: flex;
    align-items: center;
    gap: 0.45rem 0.6rem;
    flex-wrap: wrap;
    margin-top: 0.7rem;
}

.plocation {
    display: inline-flex;
    align-items: stretch;
    min-height: 1.85rem;
    border: 1px solid color-mix(in srgb, currentColor 55%, transparent);
    border-radius: 999px;
    font-size: var(--fs-xs);
    font-weight: 600;
}

    .plocation.ok { color: var(--pl-ok); background: color-mix(in srgb, var(--pl-ok) 9%, transparent); }
    .plocation.warn { color: var(--pl-warn); background: color-mix(in srgb, var(--pl-warn) 11%, transparent); }
    .plocation.bad { color: var(--pl-bad); background: color-mix(in srgb, var(--pl-bad) 9%, transparent); }

.plocation-state {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.7rem;
}

.plocation-act {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.7rem;
    border: 0;
    border-left: 1px solid color-mix(in srgb, currentColor 35%, transparent);
    background: none;
    color: var(--insp-primary);
    font: inherit;
    cursor: pointer;
}

    .plocation-act:last-child {
        border-radius: 0 999px 999px 0;
    }

    .plocation-act:hover {
        background: color-mix(in srgb, var(--insp-primary) 12%, transparent);
        color: var(--insp-primary-dark);
    }

    .plocation-act:focus-visible {
        outline: 2px solid var(--insp-primary);
        outline-offset: -2px;
    }

.pproject {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.2rem 0.3rem 0.2rem 0.65rem;
    border: 1px solid var(--pl-line);
    border-radius: 999px;
    background: var(--pl-soft);
    color: var(--bs-body-color);
    font-size: var(--fs-xs);
    font-weight: 600;
    text-decoration: none;
}

    .pproject:hover {
        border-color: var(--insp-primary);
        color: var(--insp-primary-dark);
    }

    .pproject .pi {
        color: var(--insp-primary);
    }

.pproject-badge {
    padding: 0.02rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--insp-primary) 16%, transparent);
    color: var(--insp-primary-dark);
    font-size: var(--fs-2xs);
    font-weight: 600;
}

.pstat {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 1.85rem;
    padding: 0.15rem 0.7rem;
    border-radius: 999px;
    background: var(--pl-softer);
    color: var(--bs-body-color);
    font-size: var(--fs-xs);
    font-weight: 600;
}

    .pstat > .pi {
        color: var(--pl-muted);
    }

.place-hero-jobs {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.place-hero-note {
    display: flex;
    gap: 0.45rem;
    margin: 0.75rem 0 0;
    padding: 0.45rem 0.7rem;
    border-left: 3px solid var(--insp-yellow-dark, #ebd713);
    border-radius: 6px;
    background: var(--pl-softer);
    font-size: var(--fs-sm);
}

    .place-hero-note .pi {
        margin-top: 0.15rem;
        color: var(--pl-muted);
    }

.place-minimap {
    flex: 0 0 auto;
    width: 17rem;
    height: auto;
    min-height: 10rem;
    border-radius: var(--pl-radius);
    overflow: hidden;
}

.place-lifecycle {
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--pl-line);
}

.place-lifecycle-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

    .place-lifecycle-row + .place-lifecycle-row {
        margin-top: 0.5rem;
    }

.place-edit {
    max-width: none;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.place-main-of {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    min-height: 2.375rem;
}

.pform {
    margin: 0.5rem 0.75rem 0.75rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--pl-line);
    border-radius: 10px;
    background: var(--pl-soft);
}

.pdrawer .pform {
    margin: 0;
}

.pform-heading {
    margin-bottom: 0.5rem;
    font-weight: 650;
}

.pform-rules {
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pl-line);
}

    .pform-rules legend {
        float: none;
        width: auto;
        margin-bottom: 0.25rem;
        color: var(--pl-muted);
        font-size: var(--fs-2xs);
        font-weight: 600;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

.pform-foot {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.place-groups-bar {
    max-width: none;
    margin-bottom: 0.9rem;
    padding: 1rem;
}

    .place-groups-bar > :last-child {
        margin-bottom: 0;
    }

    .place-groups-bar > .tile-head-band:last-child {
        margin-bottom: -1rem;
        border-bottom: 0;
        border-radius: inherit;
    }

.place-groups-head {
    align-items: center;
    min-height: 2.75rem;
}

.place-groups-name {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.place-groups-title {
    margin: 0;
    font-size: var(--fs-lg);
    font-weight: 650;
}

.place-groups-counts {
    color: var(--pl-muted);
    font-size: var(--fs-sm);
}

.place-groups-form > .pform {
    margin: 0.25rem 0 0.75rem;
}

.place-groups-tools {
    display: flex;
    align-items: center;
    gap: 0.5rem 1rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.place-search {
    position: relative;
}

    .place-search > .pi {
        position: absolute;
        top: 50%;
        left: 0.65rem;
        color: var(--pl-muted);
        transform: translateY(-50%);
        pointer-events: none;
    }

    .place-search input {
        width: 15rem;
        padding-left: 2rem;
        border-radius: 999px;
    }

.place-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
}

.padd-head {
    display: flex;
    align-items: center;
    gap: 0.5rem 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.65rem;
}

.padd-heading {
    color: var(--insp-text);
    font-size: var(--fs-md);
    font-weight: 650;
}

.padd-target {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

    .padd-target select {
        width: auto;
        max-width: 16rem;
    }

.padd-close {
    margin-left: auto;
}

.padd {
    container-type: inline-size;
}

.padd-ways {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.6rem;
}

@container (min-width: 28rem) {
    .padd-ways {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (min-width: 50rem) {
    .padd-ways {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.padd-way {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-height: 4.25rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--pl-line);
    border-radius: var(--pl-radius);
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color);
    text-align: left;
    cursor: pointer;
    transition: border-color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out),
                box-shadow var(--motion-fast) var(--ease-out);
}

    .padd-way:hover {
        border-color: color-mix(in srgb, var(--insp-primary) 60%, transparent);
        background: var(--pl-hover);
        box-shadow: 0 4px 14px color-mix(in srgb, var(--insp-primary) 14%, transparent);
    }

    .padd-way:focus-visible {
        outline: 2px solid var(--insp-primary);
        outline-offset: 2px;
    }

.padd-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 10px;
    background: color-mix(in srgb, var(--insp-primary) 13%, transparent);
    color: var(--insp-primary-dark);
}

    .padd-icon .pi {
        width: 1.25rem;
        height: 1.25rem;
        margin: 0;
    }

    .padd-icon .act-icon {
        margin: 0;
        font-size: 1.25rem;
    }

.padd-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.padd-name {
    color: var(--insp-primary-dark);
    font-size: var(--fs-sm);
    font-weight: 650;
}

.padd-desc {
    color: var(--pl-muted);
    font-size: var(--fs-xs);
    line-height: 1.35;
}

.padd-foot {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.8rem;
    color: var(--pl-muted);
    font-size: var(--fs-sm);
}

    .padd-foot > .pi {
        margin-top: 0.2em;
    }

.place-add-page,
.place-add-group {
    padding: 0.75rem;
    border: 1px dashed color-mix(in srgb, var(--insp-primary) 40%, var(--pl-line));
    border-radius: var(--pl-radius);
    background: var(--pl-soft);
}

.place-add-page {
    margin-bottom: 0.75rem;
}

.place-add-group {
    margin: 0.65rem 0.75rem 0.25rem;
}

.place-add-guided {
    padding: 0.25rem 0;
}

.pnav {
    min-width: 0;
}

.pnav-list {
    display: flex;
    gap: 0.4rem;
    margin: 0;
    padding: 0 0 0.35rem;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: thin;
}

    .pnav-list > li {
        flex: 0 0 auto;
    }

        .pnav-list > li.dragging {
            opacity: 0.5;
        }

.pnav-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 2.5rem;
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--pl-line);
    border-radius: 999px;
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color);
    font-size: var(--fs-sm);
    text-align: left;
    cursor: pointer;
    transition: background-color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);
}

    .pnav-item:hover {
        background: var(--pl-hover);
    }

    .pnav-item.active {
        border-color: color-mix(in srgb, var(--insp-primary) 55%, transparent);
        background: var(--pl-active);
        color: var(--insp-primary-dark);
        font-weight: 600;
    }

    .pnav-item.archived .pnav-name {
        opacity: 0.6;
    }

    .pnav-item.drop-over {
        outline: 2px dashed var(--insp-primary);
        outline-offset: 1px;
        background: var(--pl-active);
    }

    .pnav-item[draggable="true"] {
        cursor: grab;
    }

.pnav-grip {
    display: none;
    color: var(--pl-muted);
}

.pnav-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.pnav-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pnav-rules {
    display: none;
    overflow: hidden;
    color: var(--pl-muted);
    font-size: var(--fs-2xs);
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pnav-count {
    flex: 0 0 auto;
    min-width: 1.6rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--pl-softer);
    color: var(--pl-muted);
    font-size: var(--fs-2xs);
    font-weight: 700;
    text-align: center;
}

    .pnav-item.active .pnav-count {
        background: var(--insp-primary);
        color: #fff;
    }

.place-groups-main {
    min-width: 0;
}

.pgroup {
    margin-bottom: 0.9rem;
    border: 1px solid var(--pl-line);
    border-radius: var(--pl-radius);
    background: var(--bs-body-bg, #fff);
    transition: box-shadow var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);
}

    .pgroup.archived {
        border-style: dashed;
    }

        .pgroup.archived .pgroup-name {
            opacity: 0.65;
        }

    .pgroup.drop-over {
        border-color: var(--insp-primary);
        box-shadow: 0 0 0 2px color-mix(in srgb, var(--insp-primary) 45%, transparent);
    }

.pgroup-new {
    padding: 0.25rem 0;
}

.pgroup-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 3rem;
    padding: 0.4rem 0 0.4rem 0.6rem;
    border-bottom: 1px solid var(--pl-line);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    background: var(--pl-soft);
}

.pgroup:has(> .pgroup-head:last-child) .pgroup-head {
    border-bottom: 0;
    border-radius: inherit;
}

.pgroup-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: none;
    color: var(--pl-muted);
    cursor: pointer;
}

    .pgroup-toggle:hover {
        background: var(--pl-active);
        color: var(--insp-primary-dark);
    }

    .pgroup-toggle .pi {
        transition: transform var(--motion-fast) var(--ease-out);
    }

    .pgroup-toggle[aria-expanded="false"] .pi {
        transform: rotate(-90deg);
    }

.pgroup-title {
    display: flex;
    align-items: center;
    gap: 0.35rem 0.55rem;
    flex-wrap: wrap;
    flex: 1 1 auto;
    min-width: 0;
}

.pgroup-name {
    margin: 0;
    color: var(--insp-primary-dark);
    font-size: var(--fs-md);
    font-weight: 650;
    overflow-wrap: break-word;
}

.pbadge-sync {
    padding: 0.02rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, #0f766e 14%, transparent);
    color: #0f766e;
    font-size: var(--fs-2xs);
    font-weight: 600;
}

html[data-bs-theme="dark"] .pbadge-sync {
    color: #5eead4;
}

.pgroup-tools {
    display: flex;
    align-items: stretch;
    align-self: stretch;
    flex: 0 0 auto;
    margin: -0.4rem 0 -0.4rem auto;
    border-top-right-radius: inherit;
    border-bottom-right-radius: inherit;
}

    .pgroup-tools > .pmenu {
        display: flex;
        align-items: stretch;
    }

    .pgroup-tools .band-action {
        min-width: 0;
        padding: 0 0.8rem;
        border-top-right-radius: 0;
    }

    .pgroup-tools > :last-child,
    .pgroup-tools > :last-child > .band-action {
        border-top-right-radius: inherit;
        border-bottom-right-radius: inherit;
    }

    .pgroup-tools .band-action .pi {
        margin: 0;
    }

.band-action.band-icon {
    min-width: 2.75rem;
    padding: 0 0.7rem;
}

    .band-action.band-icon .act-icon {
        font-size: 1.1rem;
    }

.pgroup-body {
    padding: 0 0 0.25rem;
}

.pgroup-empty {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.25rem 0.4rem;
    flex-wrap: wrap;
    margin: 0.75rem;
    padding: 1rem;
    border: 1px dashed var(--pl-line);
    border-radius: 10px;
    color: var(--pl-muted);
    font-size: var(--fs-sm);
    text-align: center;
}

    .pgroup-empty .btn-link {
        font-size: inherit;
        font-weight: 600;
        text-decoration: none;
    }

.place-assets {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--fs-sm);
}

    .place-assets th {
        padding: 0.45rem 0.6rem;
        border-bottom: 1px solid var(--pl-line);
        color: var(--pl-muted);
        font-size: var(--fs-2xs);
        font-weight: 600;
        letter-spacing: 0.04em;
        text-align: left;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .place-assets td {
        padding: 0.5rem 0.6rem;
        border-bottom: 1px solid var(--pl-line);
        vertical-align: middle;
    }

    .place-assets tbody tr:last-child > td {
        border-bottom: 0;
    }

.place-asset-row {
    cursor: pointer;
    transition: background-color var(--motion-fast) var(--ease-out);
}

    .place-asset-row:hover > td {
        background: var(--pl-hover);
    }

    .place-asset-row.selected > td {
        background: color-mix(in srgb, var(--insp-primary) 9%, var(--bs-body-bg, #fff));
    }

    .place-asset-row.open > td {
        background: var(--pl-active);
    }

        .place-asset-row.open > td:first-child {
            box-shadow: inset 3px 0 0 var(--insp-primary);
        }

    .place-asset-row.drop-over > td {
        box-shadow: inset 0 2px 0 var(--insp-primary);
    }

    .place-asset-row.archived > td {
        opacity: 0.6;
    }

.pa-check {
    width: 4.25rem;
    white-space: nowrap;
}

.pa-hit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    min-height: 1.75rem;
    margin: 0;
    cursor: pointer;
    vertical-align: middle;
}

    .pa-hit .form-check-input {
        margin: 0;
    }

.pa-grip {
    display: inline-flex;
    width: 1rem;
    margin-right: 0.3rem;
    color: var(--pl-muted);
    cursor: grab;
    opacity: 0;
    vertical-align: middle;
    transition: opacity var(--motion-fast) var(--ease-out);
}

.place-asset-row:hover .pa-grip,
.place-asset-row:focus-within .pa-grip {
    opacity: 1;
}

.pa-code {
    width: 1%;
    white-space: nowrap;
}

    .pa-code code {
        padding: 0.1rem 0.45rem;
        border-radius: 6px;
        background: var(--pl-softer);
        color: var(--insp-primary-dark);
        font-size: var(--fs-xs);
    }

.pa-open {
    padding: 0;
    border: 0;
    background: none;
    color: var(--bs-body-color);
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

    .pa-open:hover {
        color: var(--insp-primary-dark);
        text-decoration: underline;
    }

.pa-title {
    min-width: 12rem;
}

.pa-sub {
    color: var(--pl-muted);
    font-size: var(--fs-xs);
}

.pa-location {
    min-width: 8rem;
    color: var(--pl-muted);
}

.pa-actions {
    width: 1%;
    text-align: right;
    white-space: nowrap;
}

.pa-toolbar {
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    opacity: 0;
    transition: opacity var(--motion-fast) var(--ease-out);
}

.place-asset-row:hover .pa-toolbar,
.place-asset-row:focus-within .pa-toolbar,
.place-asset-row.open .pa-toolbar,
.pa-toolbar:has(.pmenu.open) {
    opacity: 1;
}

@media (hover: none) {
    .pa-toolbar,
    .pa-grip {
        opacity: 1;
    }
}

.place-bulkbar {
    position: sticky;
    bottom: 0.75rem;
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 0.5rem 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid color-mix(in srgb, var(--insp-primary) 40%, transparent);
    border-radius: var(--pl-radius);
    background: color-mix(in srgb, var(--insp-primary) 12%, var(--bs-body-bg, #fff));
    box-shadow: var(--pl-shadow);
}

.place-bulk-count {
    margin-right: auto;
    font-size: var(--fs-sm);
}

.place-split-rules {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
    gap: 0.5rem;
}

.place-split-rule {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--pl-line);
    border-radius: 10px;
    background: var(--bs-body-bg, #fff);
    cursor: pointer;
}

    .place-split-rule.active {
        border-color: var(--insp-primary);
        box-shadow: 0 0 0 1px var(--insp-primary);
    }

    .place-split-rule .form-check-input {
        margin-top: 0.2rem;
    }

.place-split-preview {
    margin-top: 0.75rem;
}

.place-split-parts {
    display: grid;
    gap: 0.3rem;
    margin: 0 0 0.5rem;
    padding: 0;
    list-style: none;
}

    .place-split-parts li {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        flex-wrap: wrap;
        padding: 0.3rem 0.55rem;
        border-radius: 8px;
        background: var(--bs-body-bg, #fff);
    }

.place-split-name {
    font-weight: 600;
}

.pdrawer-backdrop,
.pdialog-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(8, 18, 30, 0.38);
    animation: pl-fade var(--motion-fast) var(--ease-out);
}

.pdrawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1041;
    display: flex;
    flex-direction: column;
    width: min(31rem, 100vw);
    background: var(--bs-body-bg, #fff);
    box-shadow: var(--pl-shadow);
    outline: none;
    animation: pl-slide var(--motion-base) var(--ease-out);
}

.pdrawer-head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.25rem 0.85rem;
    border-bottom: 1px solid var(--pl-line);
    background: var(--pl-soft);
}

.pdrawer-heading {
    flex: 1 1 auto;
    min-width: 0;
}

.pdrawer-kicker {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    color: var(--pl-muted);
    font-size: var(--fs-xs);
}

    .pdrawer-kicker code {
        padding: 0.1rem 0.45rem;
        border-radius: 6px;
        background: var(--bs-body-bg, #fff);
        color: var(--insp-primary-dark);
    }

.pdrawer-title {
    margin: 0.25rem 0 0;
    font-size: var(--fs-xl);
    font-weight: 650;
    overflow-wrap: break-word;
}

.pdrawer-sub {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.2rem;
    color: var(--pl-muted);
    font-size: var(--fs-sm);
}

.pdrawer-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1rem 1.25rem 1.5rem;
}

.pdrawer-actions {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.pdrawer-question {
    margin-bottom: 1rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid color-mix(in srgb, var(--pl-warn) 45%, transparent);
    border-radius: 10px;
    background: color-mix(in srgb, var(--pl-warn) 8%, var(--bs-body-bg, #fff));
    font-size: var(--fs-sm);
}

    .pdrawer-question.danger {
        border-color: color-mix(in srgb, var(--pl-bad) 45%, transparent);
        background: color-mix(in srgb, var(--pl-bad) 7%, var(--bs-body-bg, #fff));
    }

.pdrawer-facts {
    display: grid;
    grid-template-columns: minmax(6rem, auto) minmax(0, 1fr);
    gap: 0.4rem 1rem;
    margin: 0 0 1.25rem;
    font-size: var(--fs-sm);
}

    .pdrawer-facts dt {
        color: var(--pl-muted);
        font-weight: 500;
    }

    .pdrawer-facts dd {
        margin: 0;
    }

.pdrawer-section-title {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.5rem;
    color: var(--insp-primary-dark);
    font-size: var(--fs-md);
    font-weight: 650;
}

.pdrawer .place-history-table {
    font-size: var(--fs-xs);
}

.pdialog {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 1041;
    display: flex;
    flex-direction: column;
    width: min(48rem, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    border-radius: 14px;
    background: var(--bs-body-bg, #fff);
    box-shadow: var(--pl-shadow);
    outline: none;
    transform: translate(-50%, -50%);
    animation: pl-fade var(--motion-fast) var(--ease-out);
}

.pdialog-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.9rem 1.1rem 0.6rem;
}

.pdialog-title {
    margin: 0;
    font-size: var(--fs-xl);
    font-weight: 650;
}

.pdialog-target {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 1 1 14rem;
}

    .pdialog-target select {
        max-width: 18rem;
    }

.place-tools-close {
    margin-left: auto;
}

.pdialog-tabs {
    display: flex;
    gap: 0.25rem;
    padding: 0 1.1rem;
    border-bottom: 1px solid var(--pl-line);
    overflow-x: auto;
}

.pdialog-tab {
    padding: 0.5rem 0.8rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    color: var(--pl-muted);
    font-size: var(--fs-sm);
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

    .pdialog-tab:hover {
        color: var(--bs-body-color);
    }

    .pdialog-tab.active {
        border-bottom-color: var(--insp-primary);
        color: var(--insp-primary-dark);
    }

.pdialog-body {
    overflow-y: auto;
    padding: 1rem 1.1rem 1.1rem;
}

    .pdialog-body .place-tool {
        margin: 0;
        padding: 0;
        border: 0;
    }

.pdialog-foot {
    position: sticky;
    bottom: -1.1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem -1.1rem -1.1rem;
    padding: 0.75rem 1.1rem;
    border-top: 1px solid var(--pl-line);
    background: var(--bs-body-bg, #fff);
}

.place-preview {
    margin-top: 0.9rem;
    padding: 0.7rem 0.8rem;
    border-radius: 10px;
    background: var(--pl-softer);
}

.place-preview-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.place-series-preview {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.pchip {
    padding: 0.15rem 0.55rem;
    border: 1px solid var(--pl-line);
    border-radius: 7px;
    background: var(--bs-body-bg, #fff);
    font-family: var(--bs-font-monospace);
    font-size: var(--fs-xs);
}

    .pchip.clash {
        border-color: var(--pl-bad);
        background: color-mix(in srgb, var(--pl-bad) 10%, var(--bs-body-bg, #fff));
        color: var(--pl-bad);
    }

.pchip-gap {
    color: var(--pl-muted);
}

.place-preview-table {
    overflow-x: auto;
}

    .place-preview-table .table {
        background: transparent;
        box-shadow: none;
    }

    .place-preview-table tr.clash > td {
        color: var(--pl-bad);
    }

.place-dropzone {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 4.5rem;
    padding: 1rem;
    border: 2px dashed color-mix(in srgb, var(--insp-primary) 40%, var(--pl-line));
    border-radius: 12px;
    background: var(--pl-soft);
    color: var(--insp-primary-dark);
    font-size: var(--fs-sm);
    font-weight: 600;
    text-align: center;
    cursor: pointer;
}

    .place-dropzone:hover,
    .place-dropzone:focus-within {
        background: var(--pl-active);
    }

    .place-dropzone input[type="file"] {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
        cursor: pointer;
    }

@keyframes pl-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes pl-slide {
    from { transform: translateX(2rem); opacity: 0; }
    to { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .pdrawer,
    .pdialog,
    .pdrawer-backdrop,
    .pdialog-backdrop {
        animation: none;
    }
}

@media (min-width: 1200px) {
    .place-workspace.has-nav {
        grid-template-columns: 15.5rem minmax(0, 1fr);
        align-items: start;
        gap: 1rem;
    }

    .pnav {
        position: sticky;
        top: 4.5rem;
        max-height: calc(100vh - 5.5rem);
        overflow-x: hidden;
        overflow-y: auto;
        padding: 0.4rem;
        border: 1px solid var(--pl-line);
        border-radius: var(--pl-radius);
        background: var(--bs-body-bg, #fff);
    }

    .pnav-list {
        flex-direction: column;
        gap: 0.15rem;
        padding: 0;
        overflow: visible;
    }

    .pnav-item {
        border-color: transparent;
        border-radius: 9px;
        background: none;
    }

        .pnav-item.active {
            border-color: transparent;
            box-shadow: inset 3px 0 0 var(--insp-primary);
        }

    .pnav-item[draggable="true"]:hover .pnav-grip {
        display: inline-block;
    }

    .pnav-rules {
        display: block;
    }
}

@media (max-width: 1199.98px) {
    .pnav-list::after {
        content: "";
        flex: 0 0 0.25rem;
    }
}

@media (min-width: 1024px) and (max-width: 1399.98px) {
    .place-minimap {
        width: 14rem;
    }
}

@media (max-width: 991.98px) {
    .place-groups-actions .band-action {
        min-width: 0;
    }
}

@media (max-width: 1023.98px) {
    .place-hero-body {
        flex-direction: column;
    }

    .place-minimap {
        width: 100%;
        min-height: 9rem;
    }
}

@media (max-width: 899.98px) {
    .pgroup-title {
        flex: 1 1 0;
    }

    .pgroup-tools .band-action {
        min-width: 2.75rem;
        padding: 0 0.7rem;
    }

    .pbtn-label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .pgroup-tools .band-action .act-icon {
        margin-right: 0;
    }

    .place-assets thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .place-assets,
    .place-assets tbody {
        display: block;
    }

        .place-assets tr {
            display: grid;
            grid-template-columns: auto minmax(0, 1fr) auto;
            grid-template-areas:
                "check title actions"
                "check code actions"
                "check loc actions"
                "check rules actions";
            column-gap: 0.4rem;
            row-gap: 0.1rem;
            padding: 0.5rem 0.4rem;
            border-bottom: 1px solid var(--pl-line);
        }

        .place-assets tbody tr:last-child {
            border-bottom: 0;
        }

        .place-assets td {
            display: block;
            padding: 0;
            border: 0;
            background: none !important;
        }

        .place-assets tr.selected {
            background: color-mix(in srgb, var(--insp-primary) 9%, var(--bs-body-bg, #fff));
        }

        .place-assets tr.open {
            background: var(--pl-active);
        }

        .place-assets tr.drop-over {
            box-shadow: inset 0 2px 0 var(--insp-primary);
        }

    .pa-check {
        grid-area: check;
        width: auto;
    }

    .pa-grip {
        display: none;
    }

    .pa-title { grid-area: title; min-width: 0; }
    .pa-code { grid-area: code; width: auto; }
    .pa-location { grid-area: loc; min-width: 0; font-size: var(--fs-xs); }
    .pa-rules { grid-area: rules; }

    .pa-actions {
        grid-area: actions;
        align-self: start;
        width: auto;
    }

    .pa-toolbar {
        opacity: 1;
    }
}

@media (max-width: 767.98px), (pointer: coarse) {
    .pbtn-icon,
    .pgroup-toggle,
    .info-tip-button {
        width: 2.5rem;
        height: 2.5rem;
    }

    .pmenu-item {
        min-height: 2.75rem;
    }

    .pa-hit {
        min-width: 2.5rem;
        min-height: 2.5rem;
    }

    .pdrawer-actions .btn-sm,
    .pdialog-foot .btn-sm,
    .place-bulkbar .btn-sm {
        min-height: 2.5rem;
        min-width: 2.5rem;
    }
}

@media (max-width: 767.98px) {
    .place-hero {
        padding: 0.9rem 1rem;
    }

    .place-search {
        flex: 1 1 12rem;
    }

        .place-search input {
            width: 100%;
        }

    .place-bulkbar {
        bottom: 0.5rem;
    }

    .place-bulk-count {
        width: 100%;
    }

    .pdialog {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        max-height: 92vh;
        border-radius: 16px 16px 0 0;
        transform: none;
    }

    .pdialog-target select {
        max-width: none;
        flex: 1 1 auto;
    }

    .pdrawer {
        width: 100vw;
    }

    .pdrawer-facts {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.1rem;
    }

        .pdrawer-facts dd {
            margin-bottom: 0.5rem;
        }
}
