/* PanelWeb1 administration only; legacy layout styles remain unchanged. */
.pw1-admin-page .pw1-admin-main { min-width: 0; }
.pw1-admin-page .sidebar { flex-shrink: 0; overflow-y: auto; }
.pw1-admin { max-width: 1480px; margin: auto; padding: 26px; }
.pw1-admin h1 { font-size: 1.9rem; margin: 0 0 .4rem; }
.pw1-admin h2, .pw1-dialog h2 { font-size: 1.25rem; margin: 0; }
.pw1-admin p { margin: 0 0 1rem; }
.pw1-eyebrow { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; opacity: .72; }
.pw1-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.pw1-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: 0 0 1.5rem; }
.pw1-metric { border: 1px solid var(--bs-border-color, #d4d8de); border-radius: 9px; padding: 1rem; background: var(--bs-tertiary-bg, #f6f7f9); }
.pw1-metric strong { display: block; font-size: 1.7rem; line-height: 1.2; margin-top: .4rem; }
.pw1-metric span { font-size: .85rem; }
.pw1-tabs { display: flex; gap: .4rem; border-bottom: 1px solid var(--bs-border-color, #d4d8de); overflow-x: auto; }
.pw1-tabs button { appearance: none; background: none; color: inherit; border: 0; border-bottom: 3px solid transparent; padding: .8rem 1rem; white-space: nowrap; font-weight: 600; }
.pw1-tabs button[aria-selected="true"] { border-bottom-color: #7565e8; background: rgba(117, 101, 232, .12); }
.pw1-tabs button:focus-visible { outline: 2px solid #7565e8; outline-offset: -3px; }
.pw1-panel { padding: 1.5rem 0 1rem; }
.pw1-filter { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(150px, 220px) auto; align-items: end; gap: .8rem; margin-bottom: 1.2rem; }
.pw1-filter label, .pw1-form label, .pw1-admin-login label { display: block; margin: 0 0 .4rem; font-weight: 600; font-size: .9rem; }
.pw1-table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--bs-border-color, #d4d8de); border-radius: 8px; }
.pw1-table-wrap table { margin-bottom: 0; min-width: 700px; }
.pw1-table-wrap th { font-size: .82rem; opacity: .85; font-weight: 600; }
.pw1-table-wrap td, .pw1-table-wrap th { padding: .85rem .7rem; }
.pw1-table-wrap td { overflow-wrap: anywhere; }
.pw1-subtext { display: block; font-size: .8rem; opacity: .74; margin-top: .15rem; }
.pw1-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .2rem .65rem; font-size: .78rem; font-weight: 600; white-space: nowrap; background: #e7e8ee; color: #353847; }
.pw1-badge.active, .pw1-badge.approved { color: #12653d; background: #daf0e4; }
.pw1-badge.expired, .pw1-badge.rejected, .pw1-badge.blocked { color: #a22835; background: #f9e0e4; }
.pw1-badge.unlimited { color: #4e3e9b; background: #e9e3fd; }
.pw1-badge.pending, .pw1-badge.review_required, .pw1-badge.in_process { color: #755012; background: #fff0cc; }
.pw1-pager { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; padding-top: 1rem; font-size: .85rem; }
.pw1-message { padding: .85rem 1rem; margin: 0 0 1rem; border: 1px solid #bb7580; border-radius: 7px; color: #932a3a; background: #fff0f2; overflow-wrap: anywhere; }
.pw1-message.success { border-color: #81b29b; background: #eaf7ef; color: #175c3c; }
.pw1-message a { color: inherit; font-weight: 600; }
.pw1-note { opacity: .8; font-size: .9rem; line-height: 1.5; }
.pw1-dialog { width: min(740px, calc(100vw - 24px)); max-height: calc(100vh - 40px); padding: 1.5rem; color: var(--bs-body-color, #24272d); background: var(--bs-body-bg, white); border: 1px solid var(--bs-border-color, #c8cbd2); border-radius: 12px; box-shadow: 0 25px 80px #0005; overflow-y: auto; }
.pw1-dialog::backdrop { background: #0008; }
.pw1-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.4rem; }
.pw1-dialog-heading button { min-width: 40px; font-size: 1.3rem; padding: .1rem .6rem; }
.pw1-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; margin: 0 0 1.1rem; }
.pw1-detail-grid > div { min-width: 0; }
.pw1-detail-grid dt { font-size: .78rem; opacity: .7; font-weight: 500; }
.pw1-detail-grid dd { margin: .1rem 0; overflow-wrap: anywhere; }
.pw1-form { display: grid; gap: 1rem; }
.pw1-form .pw1-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.pw1-form input, .pw1-form select { min-width: 0; }
.pw1-form .pw1-check { display: flex; gap: .65rem; align-items: flex-start; font-weight: 400; }
.pw1-form .pw1-check input { margin-top: .25rem; }
.pw1-form .pw1-actions { display: flex; justify-content: flex-end; gap: .65rem; flex-wrap: wrap; padding-top: .5rem; }
.pw1-form hr { margin: .3rem 0; }
.pw1-dialog .pw1-preview { padding: .8rem; background: var(--bs-tertiary-bg, #f4f5f7); border-left: 3px solid #7565e8; margin: 0; }
.pw1-dialog details { margin-top: 1rem; border-top: 1px solid var(--bs-border-color, #d4d8de); padding-top: .7rem; }
.pw1-dialog summary { font-weight: 600; cursor: pointer; }
.pw1-dialog .pw1-history-item { padding: .8rem 0; border-bottom: 1px solid var(--bs-border-color, #d4d8de); }
.pw1-dialog .pw1-history-item p { margin: .2rem 0; }
.pw1-dialog pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .8rem; }
.pw1-admin-login { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 20px; background: linear-gradient(135deg, #6c5ce7, #a29bfe); }
.pw1-login-card { width: min(100%, 430px); padding: 2rem; border-radius: 15px; background: var(--bs-body-bg, white); color: var(--bs-body-color, #24272d); box-shadow: 0 10px 30px #0003; }
.pw1-login-brand { text-align: center; margin-bottom: 1.4rem; }
.pw1-login-brand img { border-radius: 50%; margin-bottom: .75rem; }
.pw1-login-brand h1 { font-size: 1.5rem; }
.pw1-login-brand p { font-size: .85rem; opacity: .7; }
.pw1-admin-login input { margin-bottom: 1.2rem; }
.pw1-login-back { display: block; text-align: center; margin-top: 1.3rem; font-size: .9rem; }
.pw1-admin [hidden], .pw1-dialog [hidden], .pw1-admin-login [hidden] { display: none !important; }
@media (max-width: 767px) { .pw1-admin { padding: 18px 12px; } .pw1-admin h1 { font-size: 1.5rem; } .pw1-metrics { grid-template-columns: 1fr 1fr; gap: .55rem; } .pw1-metric { padding: .8rem; } .pw1-filter { grid-template-columns: 1fr 1fr; } .pw1-filter > div:first-child { grid-column: 1 / -1; } .pw1-filter button { min-height: 38px; } .pw1-admin-heading > a { font-size: .8rem; } .pw1-dialog { padding: 1rem; } .pw1-form .pw1-form-row, .pw1-detail-grid { grid-template-columns: 1fr; gap: .75rem; } .pw1-pager { justify-content: center; } }
