
/* V23 startup recovery and application isolation. */
html.roberto-interface-locked :is(.floatTab,#roberto-recruiter-toggle,.roberto-shell,.roberto-recruiter-window,.roberto-app-window,.roberto-code-studio,.roberto-github-explorer,.roberto-file-explorer,.roberto-permission-manager,.roberto-toast-host,#roberto-update-banner){visibility:hidden!important;opacity:0!important;pointer-events:none!important}
html.roberto-interface-locked .lockscreen{position:fixed!important;inset:0!important;z-index:2147483645!important}
html.roberto-recycle-locked #bin0App{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
#roberto-startup-shield{contain:strict}
:root {
  --roberto-accent: #4cc2ff;
  --roberto-accent-strong: #0067c0;
  --roberto-danger: #e5484d;
  --roberto-panel: rgba(20, 23, 31, .88);
  --roberto-panel-solid: #171a21;
  --roberto-border: rgba(255, 255, 255, .15);
  --roberto-text: #f7f9fc;
  --roberto-muted: #aeb7c7;
}

/* Modern, non-native permanent-delete confirmation. */
.recycleConfirmBackdrop {
  position: absolute;
  inset: 0;
  z-index: 91;
  border: 0;
  padding: 0;
  background: rgba(3, 7, 18, .62);
  backdrop-filter: blur(10px) saturate(115%);
  -webkit-backdrop-filter: blur(10px) saturate(115%);
  cursor: default;
  animation: roberto-backdrop-in .18s ease both;
}
.recycleConfirmDialog {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 92;
  width: min(520px, calc(100% - 28px));
  transform: translate(-50%, -50%);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  overflow: hidden;
  padding: 22px;
  border: 1px solid color-mix(in srgb, var(--recycle-border) 70%, white 8%);
  border-radius: 20px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.08), transparent 32%),
    color-mix(in srgb, var(--recycle-surface-2) 94%, #10131a 6%);
  color: var(--recycle-text);
  box-shadow: 0 32px 90px rgba(0,0,0,.5), 0 1px rgba(255,255,255,.12) inset;
  animation: roberto-dialog-in .24s cubic-bezier(.2,.8,.2,1) both;
}
.recycleConfirmGlow {
  position: absolute;
  width: 180px;
  height: 180px;
  right: -70px;
  top: -90px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(229,72,77,.26), transparent 68%);
  pointer-events: none;
}
.recycleConfirmIcon {
  position: relative;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(229,72,77,.35);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(229,72,77,.18), rgba(229,72,77,.07));
  color: #ff8b90;
  box-shadow: 0 12px 28px rgba(229,72,77,.16);
}
.recycleConfirmCopy { position: relative; min-width: 0; }
.recycleConfirmCopy > span {
  display: inline-flex;
  margin-bottom: 5px;
  color: #ff8b90;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.recycleConfirmCopy h2 {
  margin: 0;
  color: var(--recycle-text);
  font-size: clamp(1.22rem, 3vw, 1.62rem);
  line-height: 1.2;
  font-weight: 760;
}
.recycleConfirmCopy p {
  margin: 8px 0 0;
  color: var(--recycle-muted);
  line-height: 1.55;
  font-size: .9rem;
}
.recycleConfirmActions {
  position: relative;
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}
.recycleConfirmActions button {
  min-width: 126px;
  min-height: 42px;
  padding: 9px 15px;
  border-radius: 10px;
  border: 1px solid var(--recycle-border);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease;
}
.recycleConfirmCancel {
  background: var(--recycle-surface-2);
  color: var(--recycle-text);
}
.recycleConfirmDelete {
  border-color: rgba(229,72,77,.55) !important;
  background: linear-gradient(180deg, #e5484d, #c9343a);
  color: #fff;
  box-shadow: 0 10px 26px rgba(229,72,77,.22);
}
.recycleConfirmActions button:hover { transform: translateY(-1px); }
.recycleConfirmActions button:active { transform: translateY(0) scale(.985); }
.recycleConfirmActions button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--recycle-accent) 75%, white 10%);
  outline-offset: 3px;
}
.recycleOriginalPath {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: .78;
  font-size: .68rem;
}
@keyframes roberto-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes roberto-dialog-in {
  from { opacity: 0; transform: translate(-50%, calc(-50% + 14px)) scale(.96); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Recruiter controls and command palette. */
#roberto-recruiter-toggle {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  right: max(12px, env(safe-area-inset-right));
  z-index: 2147483000;
  width: 92px;
  min-height: 94px;
  display: grid;
  grid-template-rows: 58px auto;
  justify-items: center;
  align-content: start;
  gap: 5px;
  padding: 6px 5px 5px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #fff;
  font: 600 12px/1.18 "Segoe UI", system-ui, sans-serif;
  text-align: center;
  text-shadow: 0 1px 3px rgba(0,0,0,.88);
  cursor: default;
  touch-action: manipulation;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
  -webkit-tap-highlight-color: transparent;
}
#roberto-recruiter-toggle:hover,
#roberto-recruiter-toggle[aria-expanded="true"] {
  background: rgba(255,255,255,.13);
  border-color: rgba(255,255,255,.2);
}
#roberto-recruiter-toggle:active { transform: scale(.975); }
.roberto-recruiter-app-icon {
  position: relative;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 14px;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,255,255,.46), transparent 34%),
    linear-gradient(145deg, #66d8ff 0%, #1679e9 46%, #5438d6 100%);
  box-shadow:
    0 10px 22px rgba(0,52,120,.34),
    0 1px 0 rgba(255,255,255,.34) inset,
    0 -10px 18px rgba(19,29,112,.18) inset;
  transition: transform .18s cubic-bezier(.2,.8,.2,1), filter .18s ease, box-shadow .18s ease;
}
#roberto-recruiter-toggle:hover .roberto-recruiter-app-icon,
#roberto-recruiter-toggle[aria-expanded="true"] .roberto-recruiter-app-icon {
  transform: translateY(-2px) scale(1.035);
  filter: saturate(1.12) brightness(1.05);
  box-shadow:
    0 14px 28px rgba(0,52,120,.42),
    0 1px 0 rgba(255,255,255,.4) inset,
    0 -10px 18px rgba(19,29,112,.18) inset;
}
.roberto-recruiter-app-icon::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  pointer-events: none;
}
.roberto-recruiter-app-icon svg {
  width: 34px;
  height: 34px;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.26));
}
.roberto-recruiter-app-badge {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  border: 2px solid #1375dd;
  border-radius: 999px;
  background: #f7fbff;
  color: #1665c1;
  box-shadow: 0 3px 8px rgba(0,0,0,.25);
  font-size: 9px;
  font-weight: 900;
  text-shadow: none;
}
.roberto-recruiter-app-label {
  max-width: 84px;
  min-height: 29px;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow-wrap: anywhere;
}
#roberto-recruiter-toggle:focus-visible,
.roberto-shell button:focus-visible,
.roberto-shell a:focus-visible,
.roberto-shell input:focus-visible,
.roberto-shell select:focus-visible,
.roberto-code-studio button:focus-visible,
.roberto-code-studio textarea:focus-visible {
  outline: 3px solid #8ed8ff;
  outline-offset: 3px;
}
.roberto-shell {
  position: fixed;
  inset: 0;
  z-index: 2147482999;
  display: none;
  place-items: center;
  padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
  background: rgba(2,6,15,.64);
  backdrop-filter: blur(14px) saturate(115%);
  -webkit-backdrop-filter: blur(14px) saturate(115%);
  font-family: "Segoe UI", system-ui, sans-serif;
}
.roberto-shell[data-open="true"] { display: grid; animation: roberto-backdrop-in .18s ease both; }
.roberto-shell-card {
  width: min(940px, 100%);
  max-height: min(760px, calc(100dvh - 36px));
  overflow: auto;
  border: 1px solid var(--roberto-border);
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 10%, rgba(76,194,255,.16), transparent 25%),
    linear-gradient(145deg, rgba(255,255,255,.08), transparent 36%),
    var(--roberto-panel);
  color: var(--roberto-text);
  box-shadow: 0 36px 110px rgba(0,0,0,.52);
}
.roberto-shell-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--roberto-border);
  background: rgba(15,18,26,.88);
  backdrop-filter: blur(18px);
}
.roberto-shell-title { min-width: 0; flex: 1; }
.roberto-shell-title strong { display: block; font-size: 1.08rem; }
.roberto-shell-title span { color: var(--roberto-muted); font-size: .78rem; }
.roberto-shell-close,
.roberto-icon-button {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--roberto-border);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  color: #fff;
  cursor: pointer;
}
.roberto-shell-body { padding: 20px; }
.roberto-recruiter-hero {
  display: grid;
  grid-template-columns: 1.5fr .85fr;
  gap: 18px;
  align-items: stretch;
}
.roberto-card {
  border: 1px solid var(--roberto-border);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
  padding: 18px;
}
.roberto-card h2,.roberto-card h3 { margin: 0 0 8px; }
.roberto-card p { margin: 0; color: var(--roberto-muted); line-height: 1.6; }
.roberto-role {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 5px 9px;
  border: 1px solid rgba(76,194,255,.3);
  border-radius: 999px;
  background: rgba(76,194,255,.08);
  color: #8ed8ff;
  font-size: .75rem;
  font-weight: 800;
}
.roberto-primary-actions,
.roberto-quick-grid,
.roberto-system-grid {
  display: grid;
  gap: 10px;
}
.roberto-primary-actions { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 18px; }
.roberto-quick-grid { grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 16px; }
.roberto-system-grid { grid-template-columns: repeat(4, minmax(0,1fr)); margin-top: 16px; }
.roberto-action,
.roberto-link-tile {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid var(--roberto-border);
  border-radius: 12px;
  padding: 10px 12px;
  background: rgba(255,255,255,.06);
  color: #fff;
  text-decoration: none;
  font: 700 .84rem/1.2 "Segoe UI", system-ui, sans-serif;
  cursor: pointer;
  text-align: center;
}
.roberto-action[data-primary="true"] {
  border-color: rgba(76,194,255,.45);
  background: linear-gradient(180deg, rgba(0,120,212,.95), rgba(0,90,170,.95));
  box-shadow: 0 12px 28px rgba(0,103,192,.25);
}
.roberto-action:hover,.roberto-link-tile:hover { border-color: rgba(142,216,255,.58); background-color: rgba(76,194,255,.11); }
.roberto-stat-list { display: grid; gap: 10px; margin-top: 14px; }
.roberto-stat-row { display: flex; justify-content: space-between; gap: 12px; color: var(--roberto-muted); }
.roberto-stat-row strong { color: #fff; }
.roberto-toolbar-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.roberto-toolbar-row select,
.roberto-toolbar-row input {
  min-height: 44px;
  border: 1px solid var(--roberto-border);
  border-radius: 11px;
  background: rgba(0,0,0,.22);
  color: #fff;
  padding: 8px 11px;
  font: inherit;
}
.roberto-toolbar-row input { flex: 1 1 260px; }
.roberto-search-results {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  max-height: 280px;
  overflow: auto;
}
.roberto-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--roberto-border);
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  color: #fff;
  text-decoration: none;
}
.roberto-result small { color: var(--roberto-muted); }
.roberto-toast-host {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(64px + env(safe-area-inset-bottom));
  z-index: 2147483001;
  display: grid;
  gap: 9px;
  width: min(360px, calc(100vw - 32px));
  pointer-events: none;
}
.roberto-notification {
  padding: 13px 15px;
  border: 1px solid var(--roberto-border);
  border-radius: 14px;
  background: rgba(18,22,31,.94);
  color: #fff;
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  animation: roberto-notification-in .22s ease both;
}
.roberto-notification strong { display: block; margin-bottom: 3px; }
.roberto-notification span { color: var(--roberto-muted); font-size: .82rem; }
@keyframes roberto-notification-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }

/* Code Studio and GitHub Explorer windows added without replacing existing apps. */
.roberto-code-studio,
.roberto-github-explorer,
.roberto-permission-manager {
  position: fixed;
  inset: 7vh 7vw calc(7vh + 44px) 7vw;
  z-index: 2147482500;
  display: none;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--roberto-border);
  border-radius: 18px;
  background: #11151d;
  color: #f4f7fb;
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
  font-family: "Segoe UI", system-ui, sans-serif;
}
.roberto-code-studio[data-open="true"],
.roberto-github-explorer[data-open="true"],
.roberto-permission-manager[data-open="true"] { display: flex; }
.roberto-appbar {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px 7px 15px;
  border-bottom: 1px solid var(--roberto-border);
  background: #1b202a;
}
.roberto-appbar strong { flex: 1; }
.roberto-appbar button,
.roberto-editor-tools button,
.roberto-permission-manager button {
  min-height: 38px;
  border: 1px solid var(--roberto-border);
  border-radius: 9px;
  background: rgba(255,255,255,.06);
  color: #fff;
  padding: 7px 11px;
  font: inherit;
  cursor: pointer;
}
.roberto-editor-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 9px 10px;
  border-bottom: 1px solid var(--roberto-border);
  background: #151a23;
}
.roberto-editor-tools input,
.roberto-editor-tools select {
  min-height: 38px;
  border: 1px solid var(--roberto-border);
  border-radius: 9px;
  background: #0d1118;
  color: #fff;
  padding: 7px 9px;
}
.roberto-editor-grid { min-height: 0; flex: 1; display: grid; grid-template-columns: 1.05fr .95fr; }
.roberto-code-studio textarea {
  width: 100%;
  height: 100%;
  min-height: 0;
  resize: none;
  border: 0;
  border-right: 1px solid var(--roberto-border);
  outline: 0;
  padding: 18px;
  background: #0b0f15;
  color: #dbe9ff;
  caret-color: #8ed8ff;
  font: 14px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;
  tab-size: 2;
}
.roberto-preview-pane { min-width: 0; min-height: 0; display: grid; grid-template-rows: 1fr auto; background: #fff; }
.roberto-preview-pane iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.roberto-code-output {
  max-height: 150px;
  overflow: auto;
  padding: 11px 13px;
  background: #090d13;
  color: #b9f6ca;
  font: 12px/1.5 ui-monospace, Consolas, monospace;
  white-space: pre-wrap;
}
.roberto-github-list,
.roberto-permission-body { min-height: 0; overflow: auto; padding: 16px; display: grid; gap: 10px; }
.roberto-repo-card,
.roberto-permission-row {
  border: 1px solid var(--roberto-border);
  border-radius: 13px;
  background: rgba(255,255,255,.045);
  padding: 14px;
}
.roberto-repo-card a { color: #8ed8ff; font-weight: 750; text-decoration: none; }
.roberto-repo-card p { color: var(--roberto-muted); margin: 7px 0; line-height: 1.5; }
.roberto-repo-meta { display: flex; flex-wrap: wrap; gap: 10px; color: #c5cedb; font-size: .76rem; }
.roberto-permission-row { display: flex; align-items: center; gap: 14px; }
.roberto-permission-row > div { flex: 1; }
.roberto-permission-row p { margin: 4px 0 0; color: var(--roberto-muted); }

/* WCAG 2.2-focused interaction improvements. */
:where(button, [role="button"], a, input, select, textarea):focus-visible {
  outline: 3px solid #8ed8ff !important;
  outline-offset: 3px !important;
}
:where(button, [role="button"], a) { touch-action: manipulation; }
.roberto-hidden-desktop { display: none !important; }

@media (max-width: 760px), (hover: none) and (pointer: coarse) {
  #roberto-recruiter-toggle {
    top: max(7px, env(safe-area-inset-top));
    right: max(5px, env(safe-area-inset-right));
    width: 76px;
    min-height: 82px;
    grid-template-rows: 48px auto;
    padding: 4px 3px;
    font-size: 10.5px;
  }
  .roberto-recruiter-app-icon { width: 46px; height: 46px; border-radius: 12px; }
  .roberto-recruiter-app-icon svg { width: 29px; height: 29px; }
  .roberto-recruiter-app-label { max-width: 70px; min-height: 25px; }
  .roberto-shell { padding: 8px; align-items: end; }
  .roberto-shell-card { max-height: calc(100dvh - 16px); border-radius: 22px 22px 12px 12px; }
  .roberto-recruiter-hero { grid-template-columns: 1fr; }
  .roberto-primary-actions { grid-template-columns: 1fr; }
  .roberto-quick-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .roberto-system-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .roberto-code-studio,
  .roberto-github-explorer,
  .roberto-permission-manager {
    inset: 0;
    border-radius: 0;
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .roberto-editor-grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
  .roberto-code-studio textarea { border-right: 0; border-bottom: 1px solid var(--roberto-border); }
  .recycleConfirmDialog { grid-template-columns: 1fr; gap: 12px; padding: 18px; }
  .recycleConfirmIcon { width: 48px; height: 48px; }
  .recycleConfirmActions { display: grid; grid-template-columns: 1fr; }
  .recycleConfirmActions button { width: 100%; min-height: 48px; }

  /* Keep the existing Windows design, but make mobile interaction reliable. */
  .desktop .apps, .desktop .desktopApps, .desktop .deskApps,
  [class*="desktop"] [class*="appGrid"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  .floatTab:not(.roberto-no-mobile-fullscreen) {
    max-width: 100vw !important;
    max-height: calc(100dvh - 48px - env(safe-area-inset-bottom)) !important;
  }
  .taskbar, .taskBar, [class*="taskbar"] {
    overflow-x: auto !important;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .taskbar::-webkit-scrollbar, .taskBar::-webkit-scrollbar, [class*="taskbar"]::-webkit-scrollbar { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

#roberto-update-banner {
  position: fixed;
  left: 50%;
  bottom: max(76px, calc(env(safe-area-inset-bottom) + 18px));
  z-index: 2147483640;
  width: min(520px, calc(100% - 28px));
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 14px 13px 16px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  background: rgba(16,20,29,.94);
  color: #fff;
  box-shadow: 0 22px 60px rgba(0,0,0,.45);
  backdrop-filter: blur(18px);
  font-family: "Segoe UI", system-ui, sans-serif;
}
#roberto-update-banner span { min-width: 0; flex: 1; }
#roberto-update-banner strong, #roberto-update-banner small { display: block; }
#roberto-update-banner small { margin-top: 3px; color: #b9c2d1; }
#roberto-update-banner button {
  min-height: 40px;
  padding: 8px 13px;
  border: 0;
  border-radius: 10px;
  background: #0b75d1;
  color: #fff;
  font-weight: 750;
  cursor: pointer;
}
.roberto-notification { pointer-events: auto; text-align: left; font: inherit; }
button.roberto-notification { width: 100%; cursor: pointer; }

.roberto-file-explorer {
  position: fixed;
  inset: 7vh 7vw calc(7vh + 44px) 7vw;
  z-index: 2147482500;
  display: none;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--roberto-border);
  border-radius: 18px;
  background: #11151d;
  color: #f4f7fb;
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
  font-family: "Segoe UI", system-ui, sans-serif;
}
.roberto-file-explorer[data-open="true"] { display: flex; }
.roberto-file-explorer button:focus-visible,
.roberto-file-explorer input:focus-visible { outline: 3px solid #8ed8ff; outline-offset: 3px; }
.roberto-file-toolbar input { min-width: 180px; flex: 1; }
.roberto-file-main { min-height: 0; flex: 1; display: grid; grid-template-columns: 1.25fr .75fr; }
.roberto-files-list { min-height: 0; overflow: auto; padding: 12px; display: grid; align-content: start; gap: 7px; border-right: 1px solid var(--roberto-border); }
.roberto-file-item { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 10px; min-height: 48px; padding: 8px 11px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: #fff; text-align: left; font: inherit; cursor: default; }
.roberto-file-item:hover { background: rgba(255,255,255,.055); }
.roberto-file-item[aria-selected="true"] { border-color: rgba(89,195,255,.55); background: rgba(0,103,192,.2); }
.roberto-file-item small { color: var(--roberto-muted); }
.roberto-file-actions { min-width: 0; overflow: auto; padding: 15px; }
.roberto-file-actions label { display: grid; gap: 6px; color: var(--roberto-muted); font-size: .8rem; font-weight: 750; }
.roberto-file-actions input { min-height: 40px; border: 1px solid var(--roberto-border); border-radius: 9px; background: #090d14; color: #fff; padding: 8px 10px; font: inherit; }
.roberto-file-actions button { min-height: 40px; border: 1px solid var(--roberto-border); border-radius: 9px; background: rgba(255,255,255,.06); color: #fff; font: inherit; cursor: pointer; }
.roberto-file-details { margin-top: 14px; padding: 12px; border: 1px solid var(--roberto-border); border-radius: 10px; background: rgba(255,255,255,.035); color: var(--roberto-muted); overflow-wrap: anywhere; }
@media (max-width: 760px), (hover: none) and (pointer: coarse) {
  .roberto-file-explorer { inset: 0; border-radius: 0; padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); }
  .roberto-file-main { grid-template-columns: 1fr; grid-template-rows: 1fr auto; }
  .roberto-files-list { border-right: 0; border-bottom: 1px solid var(--roberto-border); }
  .roberto-file-actions { max-height: 42vh; }
}


/* V23: a forced native boot dismissal must never leave a clickable invisible overlay. */
.bootscreen[hidden], .bootscreen[aria-hidden="true"] { display:none !important; pointer-events:none !important; }
#roberto-startup-shield button:focus-visible, #roberto-startup-shield a:focus-visible { outline:3px solid #8dd3ff; outline-offset:3px; }


/* V23 — independent opaque application windows. */
.roberto-independent-app,
.roberto-app-window,
.roberto-recruiter-window,
.roberto-code-studio,
.roberto-github-explorer,
.roberto-file-explorer,
.roberto-permission-manager {
  isolation: isolate;
  contain: paint;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background-color: #0d121b !important;
  background-image: none !important;
  overscroll-behavior: contain;
}

.roberto-recruiter-window {
  position: fixed;
  left: clamp(18px, 7vw, 112px);
  top: clamp(18px, 6vh, 72px);
  width: min(1120px, calc(100vw - 72px));
  height: min(760px, calc(100dvh - 118px));
  z-index: 2147482600;
  display: none;
  grid-template-rows: 48px minmax(0, 1fr);
  overflow: hidden;
  min-width: 720px;
  min-height: 520px;
  border: 1px solid #303846;
  border-radius: 12px;
  background: #0d121b !important;
  color: #f5f7fb;
  box-shadow: 0 34px 100px rgba(0,0,0,.64), 0 0 0 1px rgba(255,255,255,.04) inset;
  resize: both;
  font-family: "Segoe UI", system-ui, sans-serif;
}
.roberto-recruiter-window[data-open="true"] { display: grid; animation: roberto-window-open .18s cubic-bezier(.2,.8,.2,1) both; }
.roberto-recruiter-window[data-active="false"] { box-shadow: 0 24px 70px rgba(0,0,0,.52); }
@keyframes roberto-window-open { from { opacity:0; transform:translateY(10px) scale(.985) } to { opacity:1; transform:none } }

.roberto-window-titlebar {
  position: relative;
  z-index: 4;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 0 12px;
  border-bottom: 1px solid #2b3340;
  background: #161c26 !important;
  color: #f8f9fc;
  user-select: none;
  touch-action: none;
}
.roberto-window-appicon {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb,var(--app-accent,#4cc2ff) 55%,white 8%);
  border-radius: 8px;
  background: linear-gradient(145deg,color-mix(in srgb,var(--app-accent,#4cc2ff) 82%,white 10%),color-mix(in srgb,var(--app-accent,#4cc2ff) 48%,#07101f));
  color: #fff;
  box-shadow: inset 0 1px rgba(255,255,255,.28),0 5px 14px rgba(0,0,0,.28);
  font-size: 10px;
  font-weight: 900;
  text-shadow: 0 1px 2px rgba(0,0,0,.28);
}
.roberto-window-titlecopy { min-width: 0; display:grid; line-height:1.08; }
.roberto-window-titlecopy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:650; }
.roberto-window-titlecopy small { margin-top:3px; color:#97a2b3; font-size:10px; }
.roberto-window-controls { margin-left:auto; align-self:stretch; display:flex; }
.roberto-window-controls button {
  width: 46px;
  height: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #dbe1ea;
  cursor: default;
  font: 400 15px/1 "Segoe UI Symbol", "Segoe UI", sans-serif;
}
.roberto-window-controls button:hover { background:#28313d; }
.roberto-window-controls button.is-close:hover,
.roberto-window-controls button[data-window-action="close"]:hover { background:#c42b1c; color:white; }

.roberto-recruiter-titlebar { --app-accent:#369fff; }
.roberto-recruiter-mini-icon { font-size:12px; }
.roberto-title-search { width:min(320px,30vw); margin-left:auto; }
.roberto-title-search input,
.roberto-recruiter-titlebar select {
  width:100%;
  height:32px;
  border:1px solid #323b49;
  border-radius:7px;
  background:#0b1018;
  color:#f5f7fb;
  padding:5px 10px;
  font:12px "Segoe UI",system-ui,sans-serif;
}
.roberto-recruiter-titlebar select { width:74px; margin-left:4px; }
.roberto-title-search + select + .roberto-window-controls { margin-left:0; }

.roberto-recruiter-layout { min-height:0; display:grid; grid-template-columns:220px minmax(0,1fr); background:#0d121b; }
.roberto-recruiter-nav {
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:14px 10px;
  border-right:1px solid #26303d;
  background:#111721;
  overflow:auto;
}
.roberto-profile-mini { display:flex; align-items:center; gap:10px; padding:8px 9px 16px; margin-bottom:4px; border-bottom:1px solid #26303d; }
.roberto-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(145deg,#54caff,#246fe5 54%,#6543d8); font-weight:900; box-shadow:0 9px 20px rgba(15,93,206,.3); }
.roberto-profile-mini strong,.roberto-profile-mini small { display:block; }
.roberto-profile-mini strong { font-size:13px; }
.roberto-profile-mini small { margin-top:2px;color:#95a0b1;font-size:11px; }
.roberto-nav-item {
  min-height:42px;
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:#dce2eb;
  padding:8px 10px;
  text-align:left;
  cursor:pointer;
  font:600 12px "Segoe UI",system-ui,sans-serif;
}
.roberto-nav-item>span:first-child { width:21px;text-align:center;color:#82cfff;font-size:15px; }
.roberto-nav-item:hover { background:#1b2430; }
.roberto-nav-item[aria-current="page"] { border-color:#2b79bc;background:#16314a;color:#fff;box-shadow:inset 3px 0 #56c3ff; }
.roberto-nav-spacer { flex:1; }
.roberto-recruiter-content { min-width:0; min-height:0; overflow:auto; background:#0d121b; padding:24px; scrollbar-color:#687383 #141a22; }
.roberto-recruiter-view { min-height:100%; }

.roberto-dashboard-hero {
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
  gap:24px;
  min-height:245px;
  padding:30px;
  border:1px solid #2d3948;
  border-radius:18px;
  background:linear-gradient(125deg,#14263b 0%,#121a28 58%,#1c1532 100%) !important;
  box-shadow:0 22px 60px rgba(0,0,0,.32);
}
.roberto-dashboard-hero:after { content:"";position:absolute;right:-140px;top:-180px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(76,194,255,.34),transparent 67%);pointer-events:none; }
.roberto-dashboard-kicker { color:#71d2ff;letter-spacing:.14em;font-size:10px;font-weight:800; }
.roberto-dashboard-hero h2 { margin:10px 0 10px;font-size:clamp(28px,4vw,45px);line-height:1.02;letter-spacing:-.045em; }
.roberto-dashboard-hero p { max-width:650px;margin:0;color:#b7c1cf;line-height:1.55;font-size:14px; }
.roberto-dashboard-actions { display:flex;flex-wrap:wrap;gap:10px;margin-top:22px; }
.roberto-action-primary,.roberto-action-secondary { min-height:42px;border-radius:9px;padding:9px 14px;font-weight:700;cursor:pointer; }
.roberto-action-primary { border:1px solid #52bfff;background:#0878cf;color:white;box-shadow:0 10px 24px rgba(0,103,192,.28); }
.roberto-action-secondary { border:1px solid #3a4554;background:#1a2330;color:#fff; }
.roberto-system-orbit { position:relative;z-index:1;align-self:center;justify-self:center;width:210px;height:210px;display:grid;place-items:center;border:1px solid #334357;border-radius:50%;background:#0d1725;box-shadow:inset 0 0 45px rgba(64,164,255,.16),0 20px 50px rgba(0,0,0,.28); }
.roberto-orbit-core { width:76px;height:76px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,#66dcff,#1681ed 52%,#553ed2);font-size:30px;font-weight:900;box-shadow:0 0 0 10px rgba(83,184,255,.07),0 18px 38px rgba(0,99,220,.35); }
.roberto-orbit-chip { position:absolute;padding:6px 9px;border:1px solid #35475b;border-radius:999px;background:#172434;color:#dfeeff;font-size:10px;font-weight:700; }
.roberto-orbit-chip:nth-child(2){top:20px;left:8px}.roberto-orbit-chip:nth-child(3){right:-2px;top:66px}.roberto-orbit-chip:nth-child(4){bottom:18px;left:18px}
.roberto-dashboard-metrics { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px; }
.roberto-dashboard-metrics article { min-width:0;padding:14px;border:1px solid #293443;border-radius:12px;background:#121925; }
.roberto-dashboard-metrics span,.roberto-dashboard-metrics strong { display:block; }
.roberto-dashboard-metrics span { color:#929eaf;font-size:10px;text-transform:uppercase;letter-spacing:.08em; }
.roberto-dashboard-metrics strong { margin-top:7px;overflow:hidden;text-overflow:ellipsis;color:#f7f9fc;font-size:13px; }
.roberto-section-heading { display:flex;align-items:end;justify-content:space-between;gap:18px;margin:26px 0 13px; }
.roberto-section-heading span { color:#61c9ff;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase; }
.roberto-section-heading h2,.roberto-section-heading h3 { margin:4px 0 0;letter-spacing:-.025em; }
.roberto-section-heading p { max-width:720px;margin:7px 0 0;color:#98a4b5;font-size:13px; }
.roberto-section-heading>button { min-height:36px;border:1px solid #33404f;border-radius:8px;background:#151e2a;color:#e9edf4;padding:7px 11px;cursor:pointer; }
.roberto-launch-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px; }
.roberto-launch-grid-wide { grid-template-columns:repeat(3,minmax(0,1fr)); }
.roberto-launch-card,.roberto-project-app,.roberto-system-app-grid>button {
  position:relative;
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:86px;
  border:1px solid #2d3847;
  border-radius:13px;
  background:#131b27 !important;
  color:#f5f7fb;
  padding:13px;
  text-align:left;
  cursor:pointer;
  overflow:hidden;
  transition:transform .16s ease,border-color .16s ease,background-color .16s ease;
}
.roberto-launch-card:hover,.roberto-project-app:hover,.roberto-system-app-grid>button:hover { transform:translateY(-2px);border-color:color-mix(in srgb,var(--tile-accent,#4cc2ff) 72%,#fff 8%);background:#172333 !important; }
.roberto-launch-icon,.roberto-project-icon,.roberto-system-app-grid>button>span:first-child { flex:0 0 auto;width:46px;height:46px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--tile-accent,#4cc2ff) 62%,white 10%);border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--tile-accent,#4cc2ff) 78%,white 10%),color-mix(in srgb,var(--tile-accent,#4cc2ff) 44%,#07101d));box-shadow:inset 0 1px rgba(255,255,255,.25),0 9px 20px rgba(0,0,0,.25);font-size:13px;font-weight:900; }
.roberto-launch-card strong,.roberto-launch-card small,.roberto-project-app strong,.roberto-project-app small,.roberto-system-app-grid strong,.roberto-system-app-grid small { display:block; }
.roberto-launch-card strong,.roberto-project-app strong,.roberto-system-app-grid strong { font-size:12px; }
.roberto-launch-card small,.roberto-project-app small,.roberto-system-app-grid small { margin-top:4px;color:#939faf;font-size:10px;line-height:1.35; }
.roberto-launch-arrow { margin-left:auto;color:#7fd1ff;font-size:15px; }
.roberto-project-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
.roberto-project-app { min-height:94px; }
.roberto-system-app-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px; }
.roberto-system-app-grid>button { min-height:106px;align-items:flex-start;flex-direction:column; }
.roberto-system-app-grid>button>span:first-child { width:42px;height:42px; }
.roberto-search-results:empty { display:none; }
.roberto-search-results:not(:empty) { margin-top:16px;padding-top:14px;border-top:1px solid #26313e; }
.roberto-result { background:#151e2a !important;border-color:#2c3745 !important; }
.roberto-result:hover { background:#1b2938 !important; }

.roberto-app-window {
  position:fixed;
  left:92px;
  top:62px;
  width:min(1180px,calc(100vw - 140px));
  height:min(790px,calc(100dvh - 116px));
  min-width:620px;
  min-height:420px;
  z-index:2147482601;
  display:none;
  grid-template-rows:48px minmax(0,1fr);
  overflow:hidden;
  border:1px solid #303846;
  border-radius:12px;
  background:#080c13 !important;
  box-shadow:0 34px 100px rgba(0,0,0,.66),0 0 0 1px rgba(255,255,255,.04) inset;
  resize:both;
  color:#fff;
  font-family:"Segoe UI",system-ui,sans-serif;
}
.roberto-app-window[data-open="true"] { display:grid;animation:roberto-window-open .18s cubic-bezier(.2,.8,.2,1) both; }
.roberto-app-window[hidden] { display:none !important; }
.roberto-app-stage { position:relative;min-width:0;min-height:0;overflow:hidden;background:#080c13 !important;isolation:isolate; }
.roberto-app-stage iframe { position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;background:#080c13 !important;color-scheme:dark;opacity:1 !important;mix-blend-mode:normal !important; }
.roberto-app-loading { position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;background:#080c13 !important;color:#f4f7fb;text-align:center;transition:opacity .2s ease; }
.roberto-app-loading.is-done { opacity:0;pointer-events:none; }
.roberto-app-loading small { color:#93a0b2; }
.roberto-app-loading button { min-height:40px;margin-top:8px;border:1px solid #3a4757;border-radius:9px;background:#182331;color:#fff;padding:8px 13px;cursor:pointer; }
.roberto-app-loader { width:34px;height:34px;border:3px solid #2a3544;border-top-color:var(--app-accent,#4cc2ff);border-radius:50%;animation:roberto-app-spin .75s linear infinite; }
@keyframes roberto-app-spin { to { transform:rotate(360deg) } }

/* Existing utility windows receive the same opaque isolation contract. */
.roberto-code-studio,.roberto-github-explorer,.roberto-file-explorer,.roberto-permission-manager { border-color:#303846 !important;background:#0d121b !important;box-shadow:0 34px 100px rgba(0,0,0,.64) !important; }
.roberto-appbar,.roberto-editor-tools { background:#161c26 !important; }
.roberto-notification,#roberto-update-banner { background:#121923 !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important; }

@media(max-width:980px){
  .roberto-recruiter-window { min-width:0;width:calc(100vw - 32px);left:16px;top:16px;height:calc(100dvh - 80px); }
  .roberto-recruiter-layout { grid-template-columns:72px minmax(0,1fr); }
  .roberto-profile-mini span:last-child,.roberto-nav-item>span:last-child { display:none; }
  .roberto-recruiter-nav { align-items:center; }
  .roberto-nav-item { width:48px;justify-content:center;padding:8px; }
  .roberto-nav-item>span:first-child { width:auto; }
  .roberto-dashboard-hero { grid-template-columns:1fr; }
  .roberto-system-orbit { display:none; }
  .roberto-dashboard-metrics,.roberto-launch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .roberto-project-grid,.roberto-system-app-grid,.roberto-launch-grid-wide { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px),(hover:none) and (pointer:coarse){
  .roberto-recruiter-window,.roberto-app-window { inset:0 0 48px 0 !important;width:auto !important;height:auto !important;min-width:0 !important;min-height:0 !important;border-radius:0 !important;resize:none !important; }
  .roberto-recruiter-titlebar { padding-left:8px; }
  .roberto-window-titlecopy small,.roberto-title-search { display:none; }
  .roberto-recruiter-titlebar select { margin-left:auto; }
  .roberto-recruiter-layout { grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 60px; }
  .roberto-recruiter-nav { grid-row:2;flex-direction:row;align-items:center;justify-content:space-around;padding:6px;border-right:0;border-top:1px solid #27313e;overflow-x:auto; }
  .roberto-profile-mini,.roberto-nav-spacer,.roberto-recruiter-nav .roberto-nav-item:last-child { display:none; }
  .roberto-nav-item { flex:0 0 54px;width:54px;min-height:46px; }
  .roberto-recruiter-content { grid-row:1;padding:14px; }
  .roberto-dashboard-hero { min-height:0;padding:22px; }
  .roberto-dashboard-hero h2 { font-size:32px; }
  .roberto-dashboard-metrics { grid-template-columns:1fr 1fr; }
  .roberto-launch-grid,.roberto-launch-grid-wide,.roberto-project-grid,.roberto-system-app-grid { grid-template-columns:1fr; }
  .roberto-window-controls button { width:42px; }
}

/* Desktop shortcut stays behind every application window. */
#roberto-recruiter-toggle{z-index:40!important}
