/* =====================================================================
   CodeCampus v2.9.27 · Java Editor Light Mode Visibility Hotfix

   Root cause fixed:
   light_mode_v283.css loads after java_syntax_v294.css and globally gives
   every textarea an opaque white !important background. The Java syntax
   editor intentionally makes the actual textarea glyphs transparent so the
   highlighted <pre> layer can be seen underneath. The opaque textarea then
   covered the highlighted layer, producing an apparently blank editor.

   v2.9.27 adds a fail-safe:
   1) Plain editor text is visible by default.
   2) Only after JS confirms the syntax layer rendered successfully does
      CodeCampus switch the textarea to transparent overlay mode.
   ===================================================================== */

/* ---------------------------------------------------------------------
   LIGHT MODE FAIL-SAFE: code is ALWAYS readable first.
   --------------------------------------------------------------------- */

:root[data-theme="light"]
.java-code-stage-v294{
  background:#ffffff!important;
  color-scheme:light;
}

:root[data-theme="light"]
.java-code-stage-v294
.java-code-editor{
  position:relative!important;
  z-index:3!important;

  /*
   * Default/fallback state: real textarea text remains visible.
   * This prevents a blank editor if syntax JS ever fails to initialize.
   */
  background:#ffffff!important;
  background-color:#ffffff!important;
  color:#17263c!important;
  -webkit-text-fill-color:#17263c!important;

  border:0!important;
  outline:0!important;
  box-shadow:none!important;

  caret-color:#155fc4!important;
}

:root[data-theme="light"]
.java-code-stage-v294
.java-code-editor:focus{
  background:#ffffff!important;
  background-color:#ffffff!important;
  color:#17263c!important;
  -webkit-text-fill-color:#17263c!important;
  border:0!important;
  box-shadow:none!important;
}

/* ---------------------------------------------------------------------
   SYNTAX-READY STATE: reveal colored overlay.
   This class is added only AFTER renderSyntaxNow() succeeds.
   --------------------------------------------------------------------- */

:root[data-theme="light"]
.java-code-stage-v294.syntax-ready-v2927
.java-code-editor,
:root[data-theme="light"]
.java-code-stage-v294.syntax-ready-v2927
.java-code-editor:focus{
  background:transparent!important;
  background-color:transparent!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  caret-color:#155fc4!important;
  box-shadow:none!important;
}

/*
 * Keep the highlighted source above editor decorations/current-line layer
 * but below the real textarea/caret.
 */
:root[data-theme="light"]
.java-code-stage-v294
.java-current-line-v294{
  z-index:1!important;
}

:root[data-theme="light"]
.java-code-stage-v294
.java-syntax-layer-v294{
  z-index:2!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;

  color:#17263c!important;
  background:transparent!important;

  /*
   * Match textarea geometry exactly. Explicit values protect against global
   * light-mode typography/readability rules.
   */
  padding:13px 16px 40px!important;
  font:
    14px/1.62
    "Cascadia Code",
    "JetBrains Mono",
    Consolas,
    monospace!important;
  tab-size:4!important;
  white-space:pre!important;
}

/* ---------------------------------------------------------------------
   HIGH-CONTRAST LIGHT TOKEN PALETTE
   Use !important because global Light Mode accessibility CSS loads before
   this late hotfix and may contain broad semantic text rules.
   --------------------------------------------------------------------- */

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-keyword{
  color:#a83e00!important;
  font-weight:750!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-primitive{
  color:#8d4300!important;
  font-weight:700!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-type{
  color:#006783!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-type-definition{
  color:#005875!important;
  font-weight:780!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-function{
  color:#775000!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-string,
:root[data-theme="light"]
.java-syntax-layer-v294
.jv-char{
  color:#216b31!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-number{
  color:#5e369c!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-atom{
  color:#673091!important;
  font-weight:700!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-comment{
  color:#5d6d7c!important;
  font-style:italic!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-javadoc{
  color:#596f80!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-annotation{
  color:#735000!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-namespace{
  color:#306f86!important;
}

:root[data-theme="light"]
.java-syntax-layer-v294
.jv-operator{
  color:#465b70!important;
}

/* ---------------------------------------------------------------------
   Selection + current line
   --------------------------------------------------------------------- */

:root[data-theme="light"]
.java-code-stage-v294
.java-code-editor::selection{
  background:rgba(40,116,211,.22)!important;
}

:root[data-theme="light"]
.java-current-line-v294{
  background:rgba(39,117,211,.045)!important;
  border-color:rgba(39,117,211,.035)!important;
}

:root[data-theme="light"]
.java-code-stage-v294.focused
.java-current-line-v294{
  background:rgba(39,117,211,.07)!important;
}

/* ---------------------------------------------------------------------
   Line numbers / editor surfaces
   --------------------------------------------------------------------- */

:root[data-theme="light"]
.java-editor-area{
  background:#ffffff!important;
}

:root[data-theme="light"]
.java-line-numbers{
  background:#f3f7fb!important;
  color:#7e91a5!important;
  border-right-color:#dce5ee!important;
}

/* ---------------------------------------------------------------------
   Keep exact geometry on narrow IDE layouts.
   --------------------------------------------------------------------- */

@container java-workspace (max-width:700px){
  :root[data-theme="light"]
  .java-code-stage-v294
  .java-syntax-layer-v294{
    padding:
      13px 12px 40px!important;
    font-size:13px!important;
  }
}

@media(max-width:700px){
  :root[data-theme="light"]
  .java-code-stage-v294
  .java-syntax-layer-v294{
    font-size:13px!important;
  }
}

/* Dark mode intentionally unchanged. */
