:root {
  --plain-blue: #365cf5;
  --plain-blue-dark: #2949d3;
  --plain-bg: #f5f7fb;
  --plain-surface: #ffffff;
  --plain-border: #e5e9f2;
  --plain-text: #1f2937;
  --plain-muted: #6b7280;
  --plain-success: #219653;
  --plain-warning: #f2994a;
  --plain-danger: #d50100;
  --plain-sidebar-width: 270px;
  --plain-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px rgba(31,41,55,.05);
}

html.dark {
  --plain-bg: #111827;
  --plain-surface: #1f2937;
  --plain-border: #374151;
  --plain-text: #f3f4f6;
  --plain-muted: #9ca3af;
  --plain-shadow: 0 1px 2px rgba(0,0,0,.22), 0 8px 24px rgba(0,0,0,.22);
}

body { background: var(--plain-bg); color: var(--plain-text); }

/* Bejelentkezés */
.plainadmin-auth-body { min-height: 100vh; background: #f5f7fb; }
.plain-auth-shell { min-height: 100vh; padding: 32px 20px; background: radial-gradient(circle at 8% 10%, rgba(54,92,245,.10), transparent 30%), #f5f7fb; }
.plain-auth-card { width: min(100%, 470px); padding: 34px; border: 1px solid var(--plain-border); border-radius: 14px; background: #fff; box-shadow: 0 18px 48px rgba(35,43,71,.08); }
.plain-auth-brand { display: flex; align-items: center; gap: 12px; padding-bottom: 24px; border-bottom: 1px solid var(--plain-border); }
.plain-auth-brand strong,.plain-auth-brand span { display: block; }
.plain-auth-brand strong { color: var(--plain-text); font-size: 17px; }
.plain-auth-brand span { margin-top: 4px; color: var(--plain-muted); font-size: 12px; }
.plain-auth-logo,.plain-brand-mark { width: 42px; height: 42px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: #fff; background: var(--plain-blue); font-size: 19px; }
.plain-auth-heading { padding: 28px 0 20px; }
.plain-auth-heading h1 { margin: 6px 0 8px; color: var(--plain-text); font-size: 29px; font-weight: 600; }
.plain-auth-heading p { margin: 0; color: var(--plain-muted); font-size: 14px; }
.plain-auth-form { display: grid; gap: 16px; margin-top: 18px; }
.plain-auth-form label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 500; }
.plain-auth-form input { width: 100%; min-height: 45px; padding: 0 13px; border: 1px solid #dfe3eb; border-radius: 8px; color: var(--plain-text); background: #fff; outline: none; }
.plain-auth-form input:focus { border-color: rgba(54,92,245,.65); box-shadow: 0 0 0 3px rgba(54,92,245,.09); }
.plain-auth-form .btn { min-height: 46px; margin-top: 4px; border-radius: 8px; }

/* Portálváz */
body.portal-home-body { overflow: hidden; background: var(--plain-bg); }
.plain-portal-shell { min-height: 100vh; display: grid; grid-template-columns: var(--plain-sidebar-width) minmax(0,1fr); background: var(--plain-bg); }
.plain-sidebar { position: relative; z-index: 70; width: var(--plain-sidebar-width); min-height: 100vh; border-right: 1px solid var(--plain-border); background: var(--plain-surface); }
.plain-sidebar-brand { min-height: 76px; padding: 0 22px; border-bottom: 1px solid var(--plain-border); background: var(--plain-surface); }
.plain-sidebar-brand .portal-brand-copy strong { color: var(--plain-text); font-size: 16px; font-weight: 600; }
.plain-sidebar-brand .portal-brand-copy span { color: var(--plain-muted); font-size: 11px; }
.plain-sidebar-content { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.plain-nav { gap: 18px; padding: 18px 14px; }
.plain-nav .portal-nav-section { gap: 3px; }
.plain-nav .portal-nav-section-title,.plain-admin-nav .portal-nav-section-title { padding: 0 12px 8px; color: #8f92a1; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.plain-nav .portal-nav-item,.plain-admin-nav .portal-nav-item { min-height: 44px; padding: 10px 12px; border-radius: 8px; color: #5d6576; font-size: 14px; font-weight: 500; }
.plain-nav .portal-nav-item:hover,.plain-admin-nav .portal-nav-item:hover { color: var(--plain-blue); background: #f2f5ff; }
.plain-nav .portal-nav-item.active,.plain-admin-nav .portal-nav-item.active { color: var(--plain-blue); background: #edf1ff; }
.plain-nav .portal-nav-icon,.plain-admin-nav .portal-nav-icon { width: 24px; flex-basis: 24px; color: #7a8293; font-size: 18px; }
.plain-nav .portal-nav-item:hover .portal-nav-icon,.plain-nav .portal-nav-item.active .portal-nav-icon,.plain-admin-nav .portal-nav-item:hover .portal-nav-icon,.plain-admin-nav .portal-nav-item.active .portal-nav-icon { color: var(--plain-blue); }
.plain-nav-count { margin-left: auto; min-width: 25px; height: 22px; padding: 0 7px; display: inline-flex; align-items: center; justify-content: center; border-radius: 20px; color: var(--plain-blue); background: #edf1ff; font-size: 11px; font-weight: 600; }
.plain-sidebar-bottom { margin-top: auto; padding: 0 14px 16px; }
.plain-system-status { margin: 0 4px 15px; padding: 11px 12px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--plain-border); border-radius: 9px; background: #fbfcfe; }
.plain-system-status > span:last-child,.plain-system-status strong,.plain-system-status small { display: block; }
.plain-system-status strong { color: var(--plain-text); font-size: 12px; }
.plain-system-status small { margin-top: 3px; color: var(--plain-muted); font-size: 10px; }
.plain-status-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: var(--plain-success); box-shadow: 0 0 0 4px rgba(33,150,83,.10); }
.plain-admin-nav { margin: 0; padding: 16px 0 0; border-top: 1px solid var(--plain-border); }
.plain-admin-label { display: flex; align-items: center; justify-content: space-between; }
.plain-admin-label em { padding: 3px 6px; border-radius: 5px; color: #c75c00; background: #fff0e5; font-size: 8px; font-style: normal; }
.plain-icon-button { width: 40px; height: 40px; display: inline-grid; place-items: center; border: 1px solid var(--plain-border); border-radius: 9px; color: #626b7a; background: var(--plain-surface); }
.plain-icon-button:hover { color: var(--plain-blue); background: #f7f8fb; }

.plain-main { min-width: 0; height: 100vh; display: grid; grid-template-rows: 76px minmax(0,1fr); }
.plain-header { position: relative; z-index: 60; height: 76px; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--plain-border); background: rgba(255,255,255,.97); }
.plain-header-left,.plain-header-actions { display: flex; align-items: center; gap: 14px; min-width: 0; }
.plain-mobile-menu { display: none; }
.plain-page-heading small,.plain-page-heading strong { display: block; }
.plain-page-heading small { color: var(--plain-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.plain-page-heading strong { margin-top: 3px; color: var(--plain-text); font-size: 15px; font-weight: 600; }
.plain-header-search { width: min(430px, 36vw); height: 42px; padding: 0 11px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--plain-border); border-radius: 8px; color: #8f92a1; background: #f9fafc; text-align: left; }
.plain-header-search:hover { border-color: rgba(54,92,245,.35); color: var(--plain-blue); background: #fff; box-shadow: 0 0 0 3px rgba(54,92,245,.07); }
.plain-header-search span { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--plain-muted); font-size: 13px; }
.plain-header-search kbd { padding: 3px 6px; border: 1px solid #dfe3eb; border-radius: 5px; color: #8f92a1; background: #fff; box-shadow: none; font-size: 9px; }
.plain-profile { position: relative; }
.plain-profile-toggle { min-height: 48px; padding: 4px 8px 4px 4px; display: flex; align-items: center; gap: 9px; border: 0; border-radius: 9px; color: var(--plain-text); background: transparent; }
.plain-profile-toggle:hover,.plain-profile-toggle[aria-expanded="true"] { background: #f7f8fb; }
.plain-avatar { width: 38px; height: 38px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: var(--plain-blue); background: #e9edff; font-size: 12px; font-weight: 700; }
.plain-profile-copy { min-width: 0; text-align: left; }
.plain-profile-copy strong,.plain-profile-copy small { display: block; max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plain-profile-copy strong { color: var(--plain-text); font-size: 12px; font-weight: 600; }
.plain-profile-copy small { margin-top: 2px; color: var(--plain-muted); font-size: 10px; }
.plain-profile-menu { position: absolute; top: calc(100% + 8px); right: 0; width: 270px; overflow: hidden; border: 1px solid var(--plain-border); border-radius: 10px; background: #fff; box-shadow: 0 14px 38px rgba(27,37,67,.14); }
.plain-profile-menu-head { padding: 14px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--plain-border); }
.plain-profile-menu-head > span:last-child { min-width: 0; }
.plain-profile-menu-head strong,.plain-profile-menu-head small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plain-profile-menu-head strong { color: var(--plain-text); font-size: 13px; }
.plain-profile-menu-head small { margin-top: 3px; color: var(--plain-muted); font-size: 11px; }
.plain-profile-menu form { margin: 0; padding: 7px; }
.plain-profile-menu button { width: 100%; min-height: 42px; padding: 0 11px; display: flex; align-items: center; gap: 10px; border: 0; border-radius: 7px; color: #5d6576; background: transparent; font-size: 13px; text-align: left; }
.plain-profile-menu button:hover { color: var(--plain-danger); background: #fff5f5; }

.plain-content { height: auto; min-height: 0; overflow: hidden; background: var(--plain-bg); }
.plain-home-view { height: 100%; padding: 28px; background: var(--plain-bg); }
.plain-dashboard-heading { max-width: 1240px; margin: 0 auto 22px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.plain-dashboard-heading h1 { margin: 5px 0 7px; color: var(--plain-text); font-size: 26px; font-weight: 600; }
.plain-dashboard-heading p { margin: 0; color: var(--plain-muted); font-size: 14px; }
.plain-dashboard-heading .btn { border-radius: 8px; }
.plain-metrics { max-width: 1240px; margin: 0 auto 22px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.plain-metric-card { min-height: 124px; padding: 18px; display: flex; align-items: center; gap: 14px; border: 1px solid var(--plain-border); border-radius: 10px; background: var(--plain-surface); box-shadow: var(--plain-shadow); }
.plain-metric-card > span:last-child,.plain-metric-card small,.plain-metric-card strong,.plain-metric-card em { display: block; }
.plain-metric-icon { width: 48px; height: 48px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: var(--plain-blue); background: #edf1ff; font-size: 20px; }
.plain-metric-card small { color: var(--plain-muted); font-size: 11px; }
.plain-metric-card strong { margin-top: 2px; color: var(--plain-text); font-size: 25px; font-weight: 600; }
.plain-metric-card em { margin-top: 3px; color: #8f92a1; font-size: 10px; font-style: normal; }
.plain-workspace-section { max-width: 1240px; margin: 0 auto; padding: 20px; border: 1px solid var(--plain-border); border-radius: 10px; background: var(--plain-surface); box-shadow: var(--plain-shadow); }
.plain-section-head { margin-bottom: 15px; }
.plain-section-head h2 { margin: 0; color: var(--plain-text); font-size: 17px; font-weight: 600; }
.plain-section-head p { margin: 4px 0 0; color: var(--plain-muted); font-size: 12px; }
.plain-launch-grid { max-width: none; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.plain-launch-grid .portal-launch-card { min-height: 112px; padding: 16px; border-radius: 9px; box-shadow: none; }
.plain-launch-grid .portal-launch-card:hover { transform: none; border-color: rgba(54,92,245,.50); background: #fbfcff; }
.plain-launch-grid .portal-launch-card.featured { border-color: #dfe5ff; background: #f8f9ff; }
.plain-launch-grid .portal-launch-icon { width: 46px; height: 46px; border-radius: 9px; color: var(--plain-blue); background: #edf1ff; font-size: 19px; }
.plain-launch-grid .portal-launch-copy strong { color: var(--plain-text); font-size: 14px; font-weight: 600; }
.plain-launch-grid .portal-launch-copy small { color: var(--plain-muted); font-size: 12px; }
.plain-launch-grid .portal-launch-arrow { color: #a1a7b3; }
.portal-frame-stage { background: var(--plain-bg); }
.portal-frame { background: var(--plain-bg); }

/* A dokumentációs modul PlainAdmin megjelenése */
.embedded-documentation {
  --bg: var(--plain-bg);
  --surface: var(--plain-surface);
  --surface-2: #f7f8fb;
  --border: var(--plain-border);
  --text: var(--plain-text);
  --muted: var(--plain-muted);
  --primary: var(--plain-blue);
  --primary-hover: var(--plain-blue-dark);
  --shadow: var(--plain-shadow);
  background: var(--plain-bg);
}
.embedded-documentation #app,.embedded-documentation .app-body { min-height: 100%; height: 100%; background: var(--plain-bg); }
.embedded-documentation .app-body { margin-left: 0; }
.embedded-documentation .topbar { position: sticky; top: 0; height: 62px; padding: 0 24px; gap: 10px; border-bottom: 1px solid var(--plain-border); background: rgba(255,255,255,.97); backdrop-filter: none; }
.embedded-documentation .global-search { width: min(520px,65vw); }
.embedded-documentation .global-search input { min-height: 40px; border-radius: 8px; border-color: var(--plain-border); background: #f9fafc; font-size: 13px; }
.embedded-documentation .global-search input:focus { background: #fff; }
.embedded-documentation .global-search kbd { border-radius: 5px; }
.embedded-documentation .icon-btn { width: 40px; height: 40px; border-radius: 8px; border-color: var(--plain-border); color: #626b7a; background: #fff; }
.embedded-documentation .icon-btn:hover { color: var(--plain-blue); background: #f7f8fb; }
.embedded-documentation .page { padding: 24px; }
.embedded-documentation .page-heading { margin-bottom: 19px; }
.embedded-documentation .page-heading h1 { margin: 3px 0 5px; font-size: 23px; font-weight: 600; }
.embedded-documentation .page-heading p { font-size: 13px; }
.embedded-documentation .eyebrow { color: var(--plain-blue); font-size: 10px; }
.embedded-documentation .btn { min-height: 40px; padding: 0 14px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.embedded-documentation .btn-primary { background: var(--plain-blue); }
.embedded-documentation .btn-primary:hover { background: var(--plain-blue-dark); }
.embedded-documentation .btn-secondary { border-color: var(--plain-border); background: #fff; }
.embedded-documentation .stats-grid { gap: 13px; margin-bottom: 17px; }
.embedded-documentation .stat-card { padding: 17px; border-radius: 9px; box-shadow: var(--plain-shadow); }
.embedded-documentation .stat-card span { font-size: 11px; }
.embedded-documentation .stat-card strong { margin-top: 4px; font-size: 24px; font-weight: 600; }
.embedded-documentation .panel { border-radius: 9px; box-shadow: var(--plain-shadow); }
.embedded-documentation .panel-toolbar { padding: 13px; }
.embedded-documentation .filter-input input,.embedded-documentation .select-control,.embedded-documentation .field input,.embedded-documentation .field textarea,.embedded-documentation .field select { min-height: 40px; border-radius: 8px; border-color: var(--plain-border); font-size: 13px; }
.embedded-documentation .company-table th { padding: 11px 14px; background: #f8f9fb; color: #7b8292; font-size: 10px; }
.embedded-documentation .company-table td { padding: 13px 14px; }
.embedded-documentation .company-name { font-size: 13px; font-weight: 600; }
.embedded-documentation .company-description { font-size: 11px; }
.embedded-documentation .row-action { min-height: 33px; border-radius: 7px; font-size: 12px; }
.embedded-documentation .badge { padding: 4px 8px; font-size: 10px; }
.embedded-documentation .matrix-panel,.embedded-documentation .matrix-transposed-panel { border-radius: 9px; box-shadow: var(--plain-shadow); }
.embedded-documentation .matrix-toolbar { padding: 12px 13px; background: #fff; }
.embedded-documentation .matrix-table th { background: #f8f9fb; }
.embedded-documentation .matrix-table td,.embedded-documentation .matrix-table th { font-size: 12px; }
.embedded-documentation .modal { border-radius: 11px; }
.embedded-documentation .modal-head { padding: 17px 19px; }
.embedded-documentation .modal-head h2 { font-size: 18px; font-weight: 600; }
.embedded-documentation .modal-body { padding: 19px; }
.embedded-documentation .modal-footer { margin-top: 18px; padding-top: 15px; }
.embedded-documentation .detail-box,.embedded-documentation .checkbox-row,.embedded-documentation .csv-instructions { border-radius: 8px; }
.embedded-documentation .search-dialog { border-radius: 10px; }
.embedded-documentation .search-result { border-radius: 8px; }
.embedded-documentation .admin-grid { gap: 14px; }
.embedded-documentation .admin-list,.embedded-documentation .view-settings-card,.embedded-documentation .field-section,.embedded-documentation .documentation-hero,.embedded-documentation .suggestion-admin-panel,.embedded-documentation .audit-panel { border-radius: 9px; box-shadow: var(--plain-shadow); }

/* Sötét mód minimális kompatibilitás */
html.dark .plain-sidebar,html.dark .plain-header,html.dark .plain-workspace-section,html.dark .plain-metric-card { background: var(--plain-surface); }
html.dark .plain-header { background: rgba(31,41,55,.97); }
html.dark .plain-nav .portal-nav-item,html.dark .plain-admin-nav .portal-nav-item { color: #d1d5db; }
html.dark .plain-nav .portal-nav-item:hover,html.dark .plain-admin-nav .portal-nav-item:hover { background: rgba(54,92,245,.12); }
html.dark .plain-system-status,html.dark .plain-header-search,html.dark .plain-profile-toggle:hover { background: #273244; }
html.dark .plain-profile-menu { background: #1f2937; }
html.dark .embedded-documentation .topbar,html.dark .embedded-documentation .matrix-toolbar,html.dark .embedded-documentation .btn-secondary,html.dark .embedded-documentation .icon-btn { background: #1f2937; }
html.dark .embedded-documentation .company-table th,html.dark .embedded-documentation .matrix-table th { background: #273244; }

@media (max-width: 1120px) {
  .plain-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plain-header-search { width: min(340px,32vw); }
}

@media (max-width: 860px) {
  .plain-portal-shell { grid-template-columns: 1fr; }
  .plain-sidebar { position: fixed; inset: 0 auto 0 0; width: min(300px,88vw); transform: translateX(-100%); transition: transform .2s ease; box-shadow: 18px 0 48px rgba(2,6,23,.20); }
  .plain-sidebar.open { transform: translateX(0); }
  .plain-main { grid-template-rows: 64px minmax(0,1fr); }
  .plain-header { height: 64px; padding: 0 14px; }
  .plain-mobile-menu,.plain-sidebar .portal-sidebar-close { display: inline-grid; }
  .plain-header-search { width: 42px; padding: 0; justify-content: center; }
  .plain-header-search span,.plain-header-search kbd { display: none; }
  .plain-profile-copy,.plain-profile-toggle > .lni-chevron-down { display: none; }
  .plain-home-view { padding: 18px; }
  .plain-dashboard-heading { align-items: stretch; flex-direction: column; }
  .plain-dashboard-heading .btn { width: fit-content; }
  .plain-launch-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .plain-auth-card { padding: 26px 20px; }
  .plain-page-heading small { display: none; }
  .plain-metrics { grid-template-columns: 1fr; }
  .plain-dashboard-heading h1 { font-size: 22px; }
  .plain-dashboard-heading .btn { width: 100%; }
  .plain-workspace-section { padding: 15px; }
  .embedded-documentation .topbar { padding: 0 12px; }
  .embedded-documentation .page { padding: 16px 12px; }
  .embedded-documentation .global-search { width: auto; flex: 1; }
}

/* Integrált admin- és alkalmazásoldalak */
body.embedded-app-admin,body.embedded-bitlocker { background: var(--plain-bg); }
body.embedded-app-admin .app-admin-main,body.embedded-bitlocker .bitlocker-page { width: min(1240px,100%); margin: 0 auto; padding: 24px; }
body.embedded-app-admin .app-admin-header h1,body.embedded-bitlocker .page-heading h1 { font-size: 23px; font-weight: 600; }
body.embedded-app-admin .app-admin-header p,body.embedded-bitlocker .page-heading p { font-size: 13px; }
body.embedded-app-admin .app-admin-app-heading,body.embedded-app-admin .app-admin-picker,body.embedded-app-admin .app-admin-panel,body.embedded-bitlocker .bitlocker-panel { border-radius: 9px; border-color: var(--plain-border); box-shadow: var(--plain-shadow); }
body.embedded-app-admin .app-admin-app-heading { padding: 16px; }
body.embedded-app-admin .app-admin-app-icon { width: 46px; height: 46px; border-radius: 9px; background: #edf1ff; }
body.embedded-app-admin .app-admin-panel { padding: 19px; }
body.embedded-app-admin .app-admin-fields input,body.embedded-app-admin .app-admin-fields select { min-height: 40px; border-radius: 8px; }
body.embedded-bitlocker .bitlocker-page { padding-top: 22px; }
body.embedded-bitlocker .bitlocker-toolbar { padding: 13px; }
body.embedded-bitlocker .filter-input input { min-height: 40px; border-radius: 8px; background: #f9fafc; }
body.embedded-bitlocker .company-table th { padding: 11px 14px; background: #f8f9fb; font-size: 10px; }
body.embedded-bitlocker .company-table td { padding: 13px 14px; font-size: 12px; }
body.embedded-bitlocker .bitlocker-drive { border-radius: 6px; }
@media(max-width:640px){body.embedded-app-admin .app-admin-main,body.embedded-bitlocker .bitlocker-page{padding:16px 12px}}
