/* Платформенный администратор: красная полоса, вход, выбор арендатора, журнал (components/platform-ui.js, pages/platform.js, pages/platform-access.js). Только токены темы. */
/* Красная полоса: фиксирована сверху; оболочка сдвигается вниз на её высоту, чтобы ничего не перекрывалось */
#pa-strip { position: fixed; top: 0; left: 0; right: 0; z-index: 2500; height: var(--pa-h, 36px); box-sizing: border-box; padding: 0 14px; display: flex; align-items: center; gap: 10px 16px; background: #b3202c; color: #fff; font-size: 13px; line-height: 1.2; overflow: hidden; }
.pa-strip__t { font-weight: 700; white-space: nowrap; }
.pa-strip__r { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: .9; }
.pa-strip__a { display: flex; gap: 8px; flex: none; }
.pa-btn { padding: 3px 10px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 6px; background: transparent; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.pa-btn:hover { background: rgba(255, 255, 255, .16); }
.pa-btn--hot { background: #fff; color: #b3202c; border-color: #fff; }
.pa-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
body.pa-on { margin-top: var(--pa-h, 36px); height: calc(100vh - var(--pa-h, 36px)); min-height: 0; }
@media (max-width: 767px) { #pa-strip { flex-wrap: wrap; height: auto; min-height: var(--pa-h, 36px); padding: 4px 10px; } .pa-strip__r { display: none; } body.pa-on { margin-top: 0; padding-top: 64px; height: auto; } }

/* Отдельные экраны платформы: без шапки и меню арендатора */
body.pa-page #app-header, body.pa-page #app-sidebar, body.pa-page #app-bottom-nav { display: none; }
body.pa-page { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); grid-template-areas: "main"; }
body.pa-page #app-main { grid-area: main; overflow: auto; }
.pa-wrap { min-height: 100%; display: flex; align-items: flex-start; justify-content: center; padding: 8vh 16px 40px; box-sizing: border-box; }
.pa-card { width: 100%; max-width: 440px; display: flex; flex-direction: column; gap: 14px; padding: 28px; border: 1px solid var(--border-default); border-radius: var(--radius-lg, 14px); background: var(--surface-primary); }
.pa-card--wide { max-width: 1040px; }
.pa-brand { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.pa-h1 { margin: 0; font-size: 1.35rem; font-weight: 800; color: var(--text-primary); }
.pa-h2 { margin: 12px 0 0; font-size: 1rem; font-weight: 700; color: var(--text-primary); }
.pa-hint { margin: 0; font-size: var(--text-sm, 13px); line-height: 1.55; color: var(--text-muted); }
.pa-err { margin: 0; font-size: var(--text-sm, 13px); color: var(--status-danger); }
.pa-form { display: flex; flex-direction: column; gap: 12px; }
.pa-f { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pa-f > span { font-size: 12px; color: var(--text-muted); }
.pa-chk { display: flex; gap: 10px; align-items: flex-start; font-size: var(--text-sm, 13px); color: var(--text-secondary, var(--text-primary)); cursor: pointer; }
.pa-foot { margin: 0; font-size: var(--text-sm, 13px); }
.pa-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: var(--text-sm, 13px); line-height: 1.55; color: var(--text-secondary, var(--text-primary)); }
.pa-secret { display: block; padding: 10px 12px; border: 1px solid var(--border-default); border-radius: 8px; background: var(--surface-elevated); font-size: 15px; letter-spacing: .08em; overflow-wrap: anywhere; user-select: all; }
.pa-secret--small { font-size: 12px; letter-spacing: 0; margin-top: 6px; }
.pa-det summary { cursor: pointer; font-size: var(--text-sm, 13px); color: var(--text-muted); }
.pa-codes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pa-codes code { display: block; padding: 8px 10px; border: 1px solid var(--border-default); border-radius: 8px; background: var(--surface-elevated); text-align: center; letter-spacing: .06em; user-select: all; }
.pa-top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; }
.pa-top__a { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pa-who { font-size: var(--text-sm, 13px); color: var(--text-muted); }
.pa-search { max-width: 360px; }
.pa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.pa-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px; text-align: left; border: 1px solid var(--border-default); border-radius: var(--radius-md, 10px); background: var(--surface-primary); color: var(--text-primary); font: inherit; cursor: pointer; }
.pa-tile:hover { border-color: var(--accent-primary); }
.pa-tile:focus-visible { outline: 2px solid var(--border-focus, var(--accent-primary)); outline-offset: 2px; }
.pa-tile small { color: var(--text-muted); }
.pa-tag { display: inline-flex; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 600; border: 1px solid var(--border-default); color: var(--text-secondary, var(--text-primary)); }
.pa-tag--active, .pa-tag--ok { color: var(--status-success); }
.pa-tag--suspended, .pa-tag--blocked, .pa-tag--bad { color: var(--status-danger); }
.pa-tag--trial, .pa-tag--warn { color: var(--status-warning, #f5b942); }
.pa-list { display: flex; flex-direction: column; gap: 10px; }
.pa-tl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 50vh; overflow: auto; }
.pa-tr { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 12px; text-align: left; border: 1px solid var(--border-default); border-radius: 8px; background: transparent; color: var(--text-primary); font: inherit; cursor: pointer; }
.pa-tr:hover { border-color: var(--accent-primary); }
.pa-tr small { color: var(--text-muted); }
.pa-scroll { overflow: auto; border: 1px solid var(--border-default); border-radius: var(--radius-md, 10px); }
.pa-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm, 13px); font-variant-numeric: tabular-nums; }
.pa-table th { text-align: left; padding: 8px 10px; font-size: 12px; color: var(--text-muted); background: var(--surface-elevated); border-bottom: 1px solid var(--border-default); white-space: nowrap; }
.pa-table td { padding: 8px 10px; border-bottom: 1px solid var(--border-default); vertical-align: top; }
.pa-page { max-width: 980px; margin: 0 auto; padding: var(--space-6, 24px); display: flex; flex-direction: column; gap: 14px; }
.pa-empty { display: flex; flex-direction: column; gap: 6px; padding: 24px; border: 1px dashed var(--border-default); border-radius: var(--radius-lg, 14px); color: var(--text-muted); }
.pa-empty b { color: var(--text-primary); }
.pa-skel { height: 160px; border-radius: 12px; background: var(--surface-elevated); }
@media (max-width: 767px) { .pa-card { padding: 20px; } .pa-wrap { padding-top: 24px; } .pa-page { padding: var(--space-4, 16px); } }

/* Вкладки, счётчики на плитках и фильтры сквозных списков */
.pa-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.pa-tab { padding: 6px 14px; border: 1px solid var(--border-default); border-radius: 999px; background: transparent; color: var(--text-secondary, var(--text-primary)); font: inherit; font-size: 13px; cursor: pointer; }
.pa-tab:hover { border-color: var(--accent-primary); }
.pa-tab--on { border-color: var(--accent-primary); background: color-mix(in srgb, var(--accent-primary) 14%, transparent); color: var(--accent-primary); font-weight: 600; }
.pa-tab:focus-visible { outline: 2px solid var(--border-focus, var(--accent-primary)); outline-offset: 2px; }
.pa-stats { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.pa-stats i { font-style: normal; }
.pa-stats__bad { color: var(--status-danger); font-weight: 600; }
.pa-filters { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.pa-filters .pa-f { min-width: 160px; }
