:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #edf4ff;
  --muted: #a9b8cc;
  --line: #2a3b52;
  --paper: #152238;
  --canvas: #0b1422;
  --navy: #e9f2ff;
  --cyan: #47d7cf;
  --cyan-dark: #71e7df;
  --cyan-pale: #193b43;
  --shadow: 0 18px 45px #0007;
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] .app-shell,
:root[data-theme="dark"] .workspace-main,
:root[data-theme="dark"] .auth-shell,
:root[data-theme="dark"] .public-share-shell { background: var(--canvas) !important; color: var(--ink) !important; }
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .auth-card,
:root[data-theme="dark"] .content-card,
:root[data-theme="dark"] .file-card,
:root[data-theme="dark"] .dialog,
:root[data-theme="dark"] .menu,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .account-card,
:root[data-theme="dark"] .public-share-card,
:root[data-theme="dark"] table { background: var(--paper) !important; border-color: var(--line) !important; color: var(--ink) !important; }
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea { background: #0d1929 !important; border-color: var(--line) !important; color: var(--ink) !important; }
:root[data-theme="dark"] .muted,
:root[data-theme="dark"] small,
:root[data-theme="dark"] p { color: var(--muted); }

.pc14-tools { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 950; display: flex; align-items: center; gap: 10px; }
.pc14-tools button { border: 0; box-shadow: 0 12px 35px #071a3333; font: inherit; cursor: pointer; }
.pc14-theme { width: 48px; height: 48px; border-radius: 50%; background: var(--paper); color: var(--ink); font-size: 21px; border: 1px solid var(--line) !important; }
.pc14-theme::after { content: attr(data-label); position: absolute; right: 0; bottom: 56px; padding: 5px 9px; border-radius: 8px; background: var(--navy); color: var(--paper); font-size: 11px; opacity: 0; pointer-events: none; transition: opacity .15s; }
.pc14-theme:hover::after { opacity: 1; }
.pc14-family { min-height: 48px; padding: 0 18px; border-radius: 999px; background: linear-gradient(135deg, #087b7a, #35c8c2); color: #fff; display: inline-flex; align-items: center; gap: 9px; font-weight: 750 !important; }
.pc14-family[hidden] { display: none; }
.pc14-overlay { position: fixed; inset: 0; z-index: 2000; background: #06122599; backdrop-filter: blur(5px); }
.pc14-overlay[hidden] { display: none; }
.pc14-panel { position: absolute; inset: 0 0 0 auto; width: min(620px, 100%); height: 100%; overflow: auto; padding: max(24px, env(safe-area-inset-top)) 24px max(32px, env(safe-area-inset-bottom)); background: var(--canvas); color: var(--ink); box-shadow: -30px 0 80px #0004; }
.pc14-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.pc14-panel h2 { margin: 3px 0 18px; font-size: clamp(26px, 5vw, 36px); }
.pc14-panel h3 { margin: 0 0 8px; }
.pc14-kicker { color: var(--cyan-dark); text-transform: uppercase; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.pc14-close { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); color: var(--ink); font-size: 28px; cursor: pointer; }
.pc14-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 5px; margin-bottom: 20px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); }
.pc14-tabs button { border: 0; padding: 12px 8px; border-radius: 11px; background: transparent; color: var(--muted); font-weight: 750; cursor: pointer; }
.pc14-tabs button.active { background: var(--cyan-pale); color: var(--cyan-dark); }
.pc14-tabs span { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: 4px; border-radius: 999px; background: var(--line); font-size: 12px; }
.pc14-cards { display: grid; gap: 10px; }
.pc14-card { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 17px; background: var(--paper); color: var(--ink); text-align: left; }
button.pc14-card { cursor: pointer; }
.pc14-card-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--cyan-pale); }
.pc14-card strong, .pc14-card small { display: block; }
.pc14-card small { margin-top: 4px; color: var(--muted); }
.pc14-owned > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.pc14-owned button, .pc14-back, .pc14-viewer button { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: var(--canvas); color: var(--ink); cursor: pointer; }
.pc14-danger { color: #d64555 !important; }
.pc14-empty { display: grid; gap: 6px; padding: 32px 22px; border: 1px dashed var(--line); border-radius: 17px; color: var(--muted); text-align: center; }
.pc14-create { margin-bottom: 28px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.pc14-create form { display: grid; gap: 15px; margin-top: 18px; }
.pc14-create label:not(.pc14-check) { display: grid; gap: 7px; font-weight: 700; }
.pc14-create select { width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--canvas); color: var(--ink); }
.pc14-create fieldset { display: grid; gap: 8px; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.pc14-create legend { padding: 0 5px; font-weight: 700; }
.pc14-check { display: flex; align-items: center; gap: 11px; padding: 8px; border-radius: 10px; cursor: pointer; }
.pc14-check:hover { background: var(--cyan-pale); }
.pc14-check input { width: 18px; height: 18px; accent-color: var(--cyan-dark); }
.pc14-check small, .pc14-check strong { display: block; }
.pc14-check small { color: var(--muted); }
.pc14-disabled, .pc14-hint { color: var(--muted); font-size: 13px; }
.pc14-primary { padding: 13px 18px; border: 0; border-radius: 12px; background: var(--cyan-dark); color: #fff; font-weight: 800; cursor: pointer; }
.pc14-primary:disabled { opacity: .45; cursor: not-allowed; }
.pc14-success { display: grid; gap: 9px; margin-bottom: 12px; padding: 12px 14px; border-radius: 12px; background: #1b9b7130; color: #13855e; }
.pc14-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.pc14-status { min-height: 22px; color: var(--cyan-dark); font-size: 13px; }
.pc14-busy .pc14-panel { cursor: progress; }
.pc14-share-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 18px; }
.pc14-share-head h3 { margin-top: 4px; font-size: 26px; }
.pc14-pill { padding: 7px 10px; border-radius: 999px; background: var(--cyan-pale); color: var(--cyan-dark); font-size: 12px; font-weight: 800; }
.pc14-upload { display: block; margin-bottom: 16px; padding: 18px; border: 1px dashed var(--cyan-dark); border-radius: 14px; background: var(--cyan-pale); color: var(--cyan-dark); text-align: center; font-weight: 750; cursor: pointer; }
.pc14-upload input { position: absolute; opacity: 0; pointer-events: none; }
.pc14-file-list { display: grid; gap: 8px; }
.pc14-file { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; width: 100%; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); color: var(--ink); text-align: left; cursor: pointer; }
.pc14-file strong, .pc14-file small { display: block; }
.pc14-file small { margin-top: 3px; color: var(--muted); }
.pc14-viewer { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; background: #02060ded; }
.pc14-viewer header { position: absolute; inset: 0 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: max(14px, env(safe-area-inset-top)) 18px 14px; color: #fff; background: linear-gradient(#000b, transparent); }
.pc14-viewer header div { display: flex; gap: 8px; }
.pc14-viewer button { color: #fff; background: #ffffff1a; border-color: #ffffff33; }
.pc14-viewer img { width: 100%; height: 100%; object-fit: contain; }
.pc14-viewer video { width: min(100%, 1280px); height: min(100%, 820px); object-fit: contain; }
.pc14-viewer audio { width: min(90%, 720px); }
.pc14-viewer iframe { width: min(95%, 1200px); height: min(88%, 900px); margin-top: 64px; border: 0; border-radius: 14px; background: #fff; }

@media (max-width: 720px) {
  .pc14-tools { right: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); }
  .pc14-family { width: 48px; padding: 0; justify-content: center; }
  .pc14-family span:last-child { display: none; }
  .pc14-panel { padding-inline: 16px; }
  .pc14-owned { grid-template-columns: auto 1fr; }
  .pc14-owned > div { grid-column: 1 / -1; justify-content: stretch; }
  .pc14-owned button { flex: 1; }
  .pc14-share-head { align-items: flex-start; flex-direction: column; }
}

/* PrivatCloud 1.5: vollständig abgestimmtes dunkles Farbsystem. */
:root[data-theme="dark"] {
  --ink: #f3f6fa;
  --muted: #bac4d0;
  --line: #35414f;
  --paper: #151b23;
  --canvas: #0b0f15;
  --navy: #101720;
  --cyan: #59d9cc;
  --cyan-dark: #73e3d8;
  --cyan-pale: #173733;
  --surface-soft: #1b232d;
  --shadow: 0 18px 45px #0009;
  color-scheme: dark;
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] .workspace,
:root[data-theme="dark"] .content,
:root[data-theme="dark"] .auth-shell,
:root[data-theme="dark"] .public-share-shell {
  background: var(--canvas) !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .mobile-nav {
  background: #111821f2 !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] .sidebar {
  background: radial-gradient(circle at 0 100%, #43cfc61f, transparent 38%), linear-gradient(155deg, #151e29, #0d131b 78%) !important;
}

:root[data-theme="dark"] .file-panel,
:root[data-theme="dark"] .file-toolbar,
:root[data-theme="dark"] .file-row,
:root[data-theme="dark"] .file-tile,
:root[data-theme="dark"] .empty-state,
:root[data-theme="dark"] .auth-card,
:root[data-theme="dark"] .dialog,
:root[data-theme="dark"] .item-menu,
:root[data-theme="dark"] .preview-dialog,
:root[data-theme="dark"] .preview-header,
:root[data-theme="dark"] .preview-footer,
:root[data-theme="dark"] .account-card,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .public-share-card,
:root[data-theme="dark"] .public-file-card,
:root[data-theme="dark"] .pc14-card,
:root[data-theme="dark"] .pc14-create,
:root[data-theme="dark"] .pc14-file {
  background: var(--paper) !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] .file-row:not(.file-header):hover,
:root[data-theme="dark"] .file-tile:hover,
:root[data-theme="dark"] .item-menu button:hover,
:root[data-theme="dark"] .nav-item:hover {
  background: #1d2631 !important;
}

:root[data-theme="dark"] .top-actions .icon-button,
:root[data-theme="dark"] .icon-button:hover,
:root[data-theme="dark"] .button.secondary,
:root[data-theme="dark"] .compact-select select,
:root[data-theme="dark"] .search-box,
:root[data-theme="dark"] .view-switch,
:root[data-theme="dark"] .selection-toggle,
:root[data-theme="dark"] .select-control,
:root[data-theme="dark"] .bulk-bar > div button,
:root[data-theme="dark"] .transfer-cancel,
:root[data-theme="dark"] .pc14-theme,
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea {
  background: #111821 !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] .search-box input::placeholder,
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder {
  color: #8f9aa8 !important;
}

:root[data-theme="dark"] .privacy-note,
:root[data-theme="dark"] .incoming-panel,
:root[data-theme="dark"] .bulk-bar,
:root[data-theme="dark"] .active-transfer,
:root[data-theme="dark"] .version-list > div,
:root[data-theme="dark"] .pc14-tabs,
:root[data-theme="dark"] .pc14-upload,
:root[data-theme="dark"] .pc14-pill {
  background: var(--cyan-pale) !important;
  border-color: #2d5955 !important;
  color: #d9fffa !important;
}

:root[data-theme="dark"] .privacy-icon,
:root[data-theme="dark"] .view-switch button.active,
:root[data-theme="dark"] .incoming-list button,
:root[data-theme="dark"] .pc14-card-icon {
  background: #20302f !important;
  border-color: var(--line) !important;
  color: var(--cyan-dark) !important;
}

:root[data-theme="dark"] .file-header,
:root[data-theme="dark"] .preview-stage,
:root[data-theme="dark"] .text-preview,
:root[data-theme="dark"] .public-preview {
  background: #0f151d !important;
  border-color: var(--line) !important;
}

:root[data-theme="dark"] .muted,
:root[data-theme="dark"] .subtitle,
:root[data-theme="dark"] .file-name small,
:root[data-theme="dark"] .file-row small,
:root[data-theme="dark"] .file-tile small,
:root[data-theme="dark"] .dialog-hint,
:root[data-theme="dark"] .status-list small,
:root[data-theme="dark"] p,
:root[data-theme="dark"] small {
  color: var(--muted) !important;
}

:root[data-theme="dark"] .pc14-success {
  background: #164b3c !important;
  color: #a9f3d8 !important;
}

:root[data-theme="dark"] .pc14-danger,
:root[data-theme="dark"] .dialog-error {
  color: #ff9ca8 !important;
}

:root[data-theme="dark"] :focus-visible {
  outline: 3px solid #73e3d866;
  outline-offset: 2px;
}

/* PrivatCloud 1.8.1: wiederhergestellte dunkle Administration und flackerfreie Navigation. */
:root[data-theme="dark"],
:root[data-theme="dark"] body,
:root[data-theme="dark"] #root,
:root[data-theme="dark"] .cloud-shell,
:root[data-theme="dark"] .workspace,
:root[data-theme="dark"] .content,
:root[data-theme="dark"] .admin-dashboard {
  background-color: #0b0f15 !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] #root,
:root[data-theme="dark"] .cloud-shell,
:root[data-theme="dark"] .workspace,
:root[data-theme="dark"] .content {
  transition: none !important;
}

:root[data-theme="dark"] .admin-summary article,
:root[data-theme="dark"] .admin-toolbar,
:root[data-theme="dark"] .admin-table-wrap,
:root[data-theme="dark"] .admin-table,
:root[data-theme="dark"] .admin-table thead,
:root[data-theme="dark"] .admin-table tbody,
:root[data-theme="dark"] .admin-table tr,
:root[data-theme="dark"] .admin-table th,
:root[data-theme="dark"] .admin-table td,
:root[data-theme="dark"] .admin-security,
:root[data-theme="dark"] .admin-audit,
:root[data-theme="dark"] .admin-empty,
:root[data-theme="dark"] .admin-list,
:root[data-theme="dark"] .audit-list,
:root[data-theme="dark"] .admin-user,
:root[data-theme="dark"] .security-note {
  background: var(--paper) !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] .admin-table th {
  background: #101720 !important;
  color: #aeb9c7 !important;
}

:root[data-theme="dark"] .admin-table td,
:root[data-theme="dark"] .admin-person strong,
:root[data-theme="dark"] .admin-table td > strong,
:root[data-theme="dark"] .admin-summary strong,
:root[data-theme="dark"] .audit-list strong,
:root[data-theme="dark"] .admin-user strong {
  color: var(--ink) !important;
}

:root[data-theme="dark"] .admin-person small,
:root[data-theme="dark"] .admin-table td > small,
:root[data-theme="dark"] .admin-summary small,
:root[data-theme="dark"] .audit-list small,
:root[data-theme="dark"] .admin-user small,
:root[data-theme="dark"] .admin-audit time {
  color: var(--muted) !important;
}

:root[data-theme="dark"] .admin-tabs {
  background: #101720 !important;
  border-color: var(--line) !important;
}

:root[data-theme="dark"] .admin-tabs button {
  color: var(--muted) !important;
}

:root[data-theme="dark"] .admin-tabs button:hover,
:root[data-theme="dark"] .admin-tabs button.active {
  background: #1c4541 !important;
  color: #d9fffa !important;
}

:root[data-theme="dark"] .admin-summary article > span {
  background: #173733 !important;
  color: var(--cyan-dark) !important;
}

:root[data-theme="dark"] .admin-table tr:hover td,
:root[data-theme="dark"] .admin-user:hover,
:root[data-theme="dark"] .audit-list > div:hover {
  background: #1b222c !important;
}

:root[data-theme="dark"] .admin-table tr.inactive td,
:root[data-theme="dark"] .admin-user.inactive {
  background: #281b20 !important;
}

:root[data-theme="dark"] .admin-user-controls select,
:root[data-theme="dark"] .admin-user-controls .text-button,
:root[data-theme="dark"] .admin-row-actions .text-button {
  background: #111821 !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}

:root[data-theme="dark"] .role-badge.member {
  background: #202c3a !important;
  color: #cfdaea !important;
}

:root[data-theme="dark"] .role-badge.owner,
:root[data-theme="dark"] .role-badge.admin {
  background: #493c20 !important;
  color: #ffe7a8 !important;
}

.gallery-tile.selecting {
  cursor: pointer;
}

.gallery-tile.selected {
  border-color: var(--cyan-dark) !important;
  background: var(--cyan-pale) !important;
  box-shadow: 0 0 0 3px #35c8c233 !important;
}

.gallery-tile .tile-select {
  z-index: 30;
  position: absolute;
  top: 12px;
  left: 12px;
}

:root[data-theme="dark"] .file-row.selected,
:root[data-theme="dark"] .file-tile.selected,
:root[data-theme="dark"] .gallery-tile.selected {
  background: #173733 !important;
  border-color: var(--cyan-dark) !important;
}

/* PrivatCloud 1.8.2: dunkle Ladezustände ohne weißes Aufleuchten. */
:root[data-theme="dark"] .loading-state {
  background: #151b23 !important;
}

:root[data-theme="dark"] .loading-state span {
  background: linear-gradient(
    100deg,
    #1a222c 20%,
    #283543 45%,
    #1a222c 70%
  ) 0 0 / 220% 100% !important;
  border: 1px solid #303d4b;
  box-shadow: none !important;
}

:root[data-theme="dark"] .file-panel:has(.loading-state) {
  background: #151b23 !important;
}

/* PrivatCloud 1.9.0: gemeinsame Freigaben, sauberer Papierkorb und stabile Navigation. */
html,
body,
#root,
.cloud-shell,
.workspace,
.content {
  transition: none !important;
}

.mobile-menu {
  display: none !important;
}

.pc19-theme {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 950;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 12px 35px #071a3333;
  font: inherit;
  font-size: 21px;
  cursor: pointer;
}

.pc19-theme::after {
  content: attr(data-label);
  position: absolute;
  right: 0;
  bottom: 56px;
  padding: 5px 9px;
  border-radius: 8px;
  background: #10243f;
  color: #fff;
  font-size: 11px;
  opacity: 0;
  pointer-events: none;
}

.pc19-theme:hover::after { opacity: 1; }

html.pc19-shared-active .content > :not(.pc19-share-hub) {
  display: none !important;
}

.pc19-share-hub {
  display: grid;
  gap: 22px;
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  color: var(--ink);
}

.pc19-heading,
.pc19-section-head,
.pc19-browser-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.pc19-heading p,
.pc19-create > div > span,
.pc19-section-head > div > span,
.pc19-browser-head > div > span {
  margin: 0 0 7px;
  color: var(--cyan-dark);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.pc19-heading h1,
.pc19-heading h2,
.pc19-create h2,
.pc19-section-head h2,
.pc19-browser-head h2 {
  margin: 0;
  color: var(--ink);
}

.pc19-heading h1 { font-size: clamp(34px, 5vw, 52px); }
.pc19-heading > div > span { display: block; margin-top: 8px; color: var(--muted); }

.pc19-share-hub button,
.pc19-share-hub select,
.pc19-share-hub input,
.pc19-trash-tools button,
.pc19-trash-tools select,
.pc19-modal button,
.pc19-modal textarea {
  font: inherit;
}

.pc19-share-hub button,
.pc19-trash-tools button,
.pc19-modal button {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--paper);
  color: var(--ink);
  font-weight: 740;
  cursor: pointer;
}

.pc19-share-hub button:hover,
.pc19-trash-tools button:hover,
.pc19-modal button:hover { border-color: var(--cyan-dark); }
.pc19-share-hub button:disabled { opacity: .45; cursor: not-allowed; }
.pc19-share-hub button.danger,
.pc19-trash-tools button.danger,
.pc19-modal button.danger { color: #d74357; border-color: #d7435759; }

.pc19-privacy,
.pc19-notice {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid #50cfc274;
  border-radius: 16px;
  background: #e0faf6;
  color: #124f4b;
}

.pc19-privacy > span { font-size: 24px; }
.pc19-privacy strong,
.pc19-privacy small,
.pc19-notice strong,
.pc19-notice span { display: block; }
.pc19-privacy small,
.pc19-notice span { margin-top: 4px; color: inherit; opacity: .8; }
.pc19-notice { justify-content: space-between; margin-bottom: 14px; }
.pc19-notice.success { background: #e6f8ee; border-color: #54bd7f; color: #145a34; }

.pc19-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--paper);
}

.pc19-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  background: transparent;
  color: var(--muted);
}

.pc19-tabs button.active { background: var(--cyan-pale); color: #087b7a; }
.pc19-tabs button span {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 4px;
  border-radius: 999px;
  background: #10243f17;
  font-size: 12px;
}

.pc19-status {
  padding: 11px 14px;
  border-radius: 12px;
  background: var(--cyan-pale);
  color: #087b7a;
  font-weight: 720;
}

.pc19-status.busy { cursor: progress; }
.pc19-body { min-height: 240px; }
.pc19-card-grid { display: grid; gap: 11px; }

.pc19-share-card,
.pc19-request-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: 0 8px 24px #071a330a;
}

.pc19-share-card strong,
.pc19-share-card small,
.pc19-request-card strong,
.pc19-request-card small { display: block; }
.pc19-share-card small,
.pc19-request-card small { margin-top: 5px; color: var(--muted); }
.pc19-card-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--cyan-pale);
  font-size: 22px;
}

.pc19-card-actions,
.pc19-row-actions,
.pc19-manage-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.pc19-create,
.pc19-manage,
.pc19-browser {
  display: grid;
  gap: 18px;
  margin-bottom: 24px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
}

.pc19-create p { margin: 8px 0 0; color: var(--muted); }
.pc19-create form {
  display: grid;
  grid-template-columns: minmax(190px, 1.3fr) minmax(210px, 1fr) minmax(150px, .65fr) auto;
  align-items: end;
  gap: 12px;
}

.pc19-create label,
.pc19-recipient label,
.pc19-trash-tools label,
.pc19-modal label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.pc19-create select,
.pc19-recipient select,
.pc19-trash-tools select,
.pc19-invite-result input,
.pc19-modal textarea {
  width: 100%;
  min-height: 43px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--canvas);
  color: var(--ink);
  box-sizing: border-box;
}

.pc19-create form > button,
.pc19-invite-result button { background: #087b7a; color: #fff; border-color: #087b7a; }
.pc19-invite-result {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 13px;
  border-radius: 12px;
  background: var(--cyan-pale);
}

.pc19-recipient-list { display: grid; gap: 10px; }
.pc19-recipient {
  display: grid;
  grid-template-columns: minmax(210px, 1.1fr) minmax(220px, 1fr) minmax(130px, .6fr) auto;
  align-items: end;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--canvas);
}

.pc19-person { display: flex; align-items: center; gap: 12px; min-height: 43px; }
.pc19-person > span { font-size: 22px; }
.pc19-person strong,
.pc19-person small { display: block; }
.pc19-person small { margin-top: 3px; color: var(--muted); }
.pc19-manage-actions { justify-content: flex-start; }
.pc19-manage-actions small { color: var(--muted); }

.pc19-browser-head { align-items: center; }
.pc19-back { justify-self: start; }
.pc19-pill {
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--cyan-pale);
  color: #087b7a;
  font-size: 12px;
  font-weight: 800;
}

.pc19-browser-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--canvas);
}

.pc19-upload { cursor: pointer; }
.pc19-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pc19-upload span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 10px; background: #087b7a; color: #fff; font-weight: 750; }
.pc19-file-list { display: grid; gap: 7px; }
.pc19-file-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 66px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--canvas);
}

.pc19-file-row.selected { border-color: var(--cyan-dark); background: var(--cyan-pale); }
.pc19-file-open {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-width: 0;
  padding: 3px !important;
  border: 0 !important;
  background: transparent !important;
  text-align: left;
}

.pc19-file-open strong,
.pc19-file-open small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc19-file-open small { margin-top: 4px; color: var(--muted); }
.pc19-file-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: var(--cyan-pale); font-size: 20px; flex: 0 0 auto; }
.pc19-check { width: 34px; min-height: 34px !important; padding: 0 !important; color: transparent !important; }
.pc19-check.selected { background: #087b7a !important; color: #fff !important; border-color: #087b7a !important; }
.pc19-empty {
  display: grid;
  gap: 6px;
  padding: 34px 22px;
  border: 1px dashed var(--line);
  border-radius: 16px;
  color: var(--muted);
  text-align: center;
}

.pc19-empty strong { color: var(--ink); }
.pc19-loading { display: grid; gap: 12px; padding: 25px; border-radius: 16px; background: var(--paper); }
.pc19-loading span { height: 52px; border-radius: 12px; background: linear-gradient(100deg, #e8edf4 20%, #f7f9fb 45%, #e8edf4 70%) 0 0 / 220% 100%; animation: pc19-loading 1.3s linear infinite; }
@keyframes pc19-loading { to { background-position: -220% 0; } }

.pc19-viewer {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: grid;
  grid-template-rows: auto 1fr;
  background: #02060df2;
}

.pc19-viewer header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; color: #fff; background: #070d16; }
.pc19-viewer header div { display: flex; gap: 8px; }
.pc19-viewer button { min-height: 40px; padding: 8px 12px; border: 1px solid #ffffff38; border-radius: 10px; background: #ffffff18; color: #fff; cursor: pointer; }
.pc19-viewer main { display: grid; place-items: center; min-height: 0; padding: 16px; }
.pc19-viewer img,
.pc19-viewer video { width: 100%; height: 100%; object-fit: contain; }
.pc19-viewer audio { width: min(90%, 720px); }
.pc19-viewer iframe { width: min(96%, 1280px); height: 100%; border: 0; border-radius: 12px; background: #fff; }
.pc19-open-external { display: grid; justify-items: center; gap: 12px; max-width: 520px; color: #fff; text-align: center; }
.pc19-open-external > span { font-size: 72px; }

.pc19-trash-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: end;
  gap: 14px;
  margin-bottom: 16px;
  padding: 17px 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
}

.pc19-trash-tools > div strong,
.pc19-trash-tools > div span { display: block; }
.pc19-trash-tools > div span { margin-top: 5px; color: var(--muted); font-size: 13px; }

.select-control svg { opacity: 0 !important; }
.select-control.selected svg { opacity: 1 !important; }
.select-control:not(.selected) { background: transparent !important; }

.pc19-modal {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  padding: 18px;
  background: #03101fba;
  backdrop-filter: blur(5px);
}

.pc19-modal-card {
  position: relative;
  display: grid;
  gap: 15px;
  width: min(520px, 100%);
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 28px 80px #0007;
}

.pc19-modal-card h2,
.pc19-modal-card p { margin: 0; }
.pc19-modal-card p { color: var(--muted); line-height: 1.55; }
.pc19-modal-card textarea { min-height: 110px; resize: vertical; }
.pc19-modal-card > div { display: flex; justify-content: flex-end; gap: 9px; }
.pc19-modal-close { position: absolute; top: 12px; right: 12px; width: 40px; padding: 0 !important; font-size: 25px !important; }
.pc19-modal-icon { font-size: 36px; }

/* Konto/Server und Administration erhalten in beiden Darstellungen klare Karten. */
.dialog:has(.status-list) { width: min(690px, calc(100vw - 32px)); }
.status-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.status-list > div { min-height: 58px; padding: 13px 14px !important; border: 1px solid var(--line); border-radius: 13px; background: var(--canvas); }
.account-actions { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-actions .button:last-child { grid-column: 1 / -1; }
.admin-dashboard { padding-bottom: 30px; }
.admin-summary article,
.admin-toolbar,
.admin-table-wrap,
.admin-security { box-shadow: 0 8px 24px #071a330d; }

:root[data-theme="dark"] .pc19-theme,
:root[data-theme="dark"] .pc19-tabs,
:root[data-theme="dark"] .pc19-share-card,
:root[data-theme="dark"] .pc19-request-card,
:root[data-theme="dark"] .pc19-create,
:root[data-theme="dark"] .pc19-manage,
:root[data-theme="dark"] .pc19-browser,
:root[data-theme="dark"] .pc19-trash-tools,
:root[data-theme="dark"] .pc19-modal-card {
  background: #151b23 !important;
  border-color: #35414f !important;
  color: #f3f6fa !important;
}

:root[data-theme="dark"] .pc19-privacy,
:root[data-theme="dark"] .pc19-notice,
:root[data-theme="dark"] .pc19-status,
:root[data-theme="dark"] .pc19-pill,
:root[data-theme="dark"] .pc19-card-icon,
:root[data-theme="dark"] .pc19-file-icon,
:root[data-theme="dark"] .pc19-invite-result {
  background: #173733 !important;
  border-color: #2d5955 !important;
  color: #d9fffa !important;
}

:root[data-theme="dark"] .pc19-notice.success { background: #163c2b !important; border-color: #2d6b4a !important; color: #c7f7d8 !important; }
:root[data-theme="dark"] .pc19-tabs button.active { background: #1c4541 !important; color: #d9fffa !important; }
:root[data-theme="dark"] .pc19-tabs button span { background: #ffffff12; }
:root[data-theme="dark"] .pc19-file-row,
:root[data-theme="dark"] .pc19-browser-toolbar,
:root[data-theme="dark"] .pc19-recipient,
:root[data-theme="dark"] .status-list > div { background: #101720 !important; border-color: #35414f !important; }
:root[data-theme="dark"] .pc19-file-row.selected { background: #173733 !important; border-color: #73e3d8 !important; }
:root[data-theme="dark"] .pc19-create select,
:root[data-theme="dark"] .pc19-recipient select,
:root[data-theme="dark"] .pc19-trash-tools select,
:root[data-theme="dark"] .pc19-invite-result input,
:root[data-theme="dark"] .pc19-modal textarea { background: #0d131b !important; color: #f3f6fa !important; border-color: #35414f !important; }
:root[data-theme="dark"] .pc19-loading { background: #151b23; }
:root[data-theme="dark"] .pc19-loading span { background: linear-gradient(100deg, #1a222c 20%, #283543 45%, #1a222c 70%) 0 0 / 220% 100%; }

@media (max-width: 1000px) {
  .mobile-menu { display: inline-grid !important; }
  .pc19-create form { grid-template-columns: 1fr 1fr; }
  .pc19-recipient { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .pc19-theme { right: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); }
  .pc19-heading,
  .pc19-section-head,
  .pc19-browser-head { align-items: stretch; flex-direction: column; }
  .pc19-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pc19-create form,
  .pc19-recipient,
  .pc19-trash-tools { grid-template-columns: 1fr; }
  .pc19-invite-result { grid-template-columns: 1fr; }
  .pc19-share-card,
  .pc19-request-card { grid-template-columns: auto 1fr; }
  .pc19-card-actions { grid-column: 1 / -1; justify-content: stretch; }
  .pc19-card-actions button { flex: 1; }
  .pc19-file-row { grid-template-columns: auto minmax(0, 1fr); }
  .pc19-row-actions { grid-column: 1 / -1; justify-content: stretch; }
  .pc19-row-actions button { flex: 1; }
  .status-list,
  .account-actions { grid-template-columns: 1fr !important; }
  .account-actions .button:last-child { grid-column: auto; }
}

/* PrivatCloud 1.9.1: Zusatzbereiche bleiben strikt an ihre aktive Seite gebunden. */

/* PrivatCloud 1.9.4: Deutlich sichtbarer Sperrhinweis auf der dunklen Anmeldeseite. */
.pc19-admin-notice {
  z-index: 250;
}

:root[data-theme="dark"] .auth-shell .auth-form .auth-error {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #b95060 !important;
  border-left: 4px solid #ff7180 !important;
  background: #3b1f27 !important;
  color: #ffe0e4 !important;
  box-shadow: 0 8px 22px #0005, 0 0 0 1px #ff71801f;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.5;
}

:root[data-theme="dark"] .auth-shell .auth-form .auth-error::before {
  content: "⛔";
  flex: none;
  font-size: 16px;
  line-height: 1.35;
}
