#txt-locker-app,
#txt-locker-app *{box-sizing:border-box}
#txt-locker-app{
  width:100%;
  font-family:Arial,Helvetica,sans-serif;
  color:#2d2d2d;
  --txt-editor-font-size:31px;
}

#txt-locker-app .txt-folder-icon,
#txt-locker-app .txt-file-icon,
#txt-locker-app .txt-doc-icon,
#txt-locker-app .txt-side-mini-btn,
#txt-locker-app .txt-folder-action,
#txt-locker-app .txt-doc-action,
#txt-locker-app .txt-folder-menu-btn,
#txt-locker-app .txt-folder-menu button{
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Arial,Helvetica,sans-serif;
}
#txt-locker-app .txt-doc-name,
#txt-locker-app .txt-folder-name,
#txt-locker-app .txt-doc-title{
  font-family:Arial,Helvetica,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";
}

#txt-locker-app .txt-shell{
  display:flex;
  width:100%;
  min-height:600px;
  border-radius:14px;
  overflow:hidden;
  background:radial-gradient(circle at 8px 8px, rgba(160,170,185,.25) 1.5px, transparent 1.6px) 0 0/20px 20px,#f4f4f4;
  border:1px solid #d9d9d9;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}
#txt-locker-app .txt-sidebar{
  width:330px;
  min-width:330px;
  background:#ececec;
  border-right:1px solid #d7d7d7;
  padding:18px 14px;
  transition:width .22s ease,min-width .22s ease,padding .22s ease,opacity .22s ease;
  overflow:auto;
}
#txt-locker-app .txt-sidebar-top{margin-bottom:18px}
#txt-locker-app .txt-sidebar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
#txt-locker-app .txt-side-mini-btn{
  border:none;
  border-radius:8px;
  background:#d9d9d9;
  color:#444;
  width:50px;
  height:50px;
  cursor:pointer;
  font-size:20px;
  box-shadow:0 6px 14px rgba(0,0,0,.08);
  transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease;
}
#txt-locker-app .txt-side-mini-btn:hover{transform:translateY(-1px);opacity:.95}
#txt-locker-app .txt-add-btn{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:none;
  border-radius:8px;
  background:#a8d5f8;
  color:#fff;
  padding:12px 14px;
  font-size:24px;
  font-weight:700;
  min-width:112px;
  cursor:pointer;
  box-shadow:0 6px 14px rgba(0,0,0,.08);
  transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease;
}
#txt-locker-app .txt-add-btn:hover{transform:translateY(-1px);opacity:.95}
#txt-locker-app .txt-plus{font-size:34px;line-height:1;margin-top:-2px}
#txt-locker-app .txt-folder-tree{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#txt-locker-app .txt-folder-children{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#txt-locker-app .txt-folder-block{
  border-bottom:1px solid #cfcfcf;
  padding-bottom:8px;
}
#txt-locker-app .txt-folder-block.is-nested{
  margin-left:18px;
  border-bottom:none;
  padding-bottom:0;
}
#txt-locker-app .txt-folder-header{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:8px 6px;
  border-radius:8px;
  cursor:pointer;
  user-select:none;
  transition:background .18s ease, box-shadow .18s ease;
}
#txt-locker-app .txt-folder-header:hover{
  background:rgba(255,255,255,.45);
}
#txt-locker-app .txt-folder-header.drag-over{
  background:rgba(168,213,248,.45);
  box-shadow:inset 0 0 0 1px #8fc8f0;
}
#txt-locker-app .txt-folder-caret{
  width:18px;
  text-align:center;
  color:#666;
  font-size:14px;
}
#txt-locker-app .txt-folder-icon{
  font-size:22px;
  line-height:1;
}
#txt-locker-app .txt-folder-name{
  flex:1;
  min-width:0;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  font-size:16px;
  color:#333;
  font-weight:700;
  line-height:1.25;
  word-break:break-word;
}
#txt-locker-app .txt-folder-count{
  color:#7b7b7b;
  font-size:12px;
}
#txt-locker-app .txt-folder-actions{
  position:relative;
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
#txt-locker-app .txt-folder-menu-btn{
  border:none;
  background:transparent;
  cursor:pointer;
  width:34px;
  height:30px;
  border-radius:8px;
  color:#666;
  font-size:20px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
#txt-locker-app .txt-folder-menu-btn:hover,
#txt-locker-app .txt-folder-actions.is-open .txt-folder-menu-btn{
  background:rgba(255,255,255,.6);
}
#txt-locker-app .txt-folder-menu{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:170px;
  padding:6px;
  border-radius:12px;
  background:#fff;
  border:1px solid #d6d6d6;
  box-shadow:0 16px 35px rgba(0,0,0,.16);
  z-index:40;
}
#txt-locker-app .txt-folder-actions.is-open .txt-folder-menu{display:flex;flex-direction:column;gap:4px}
#txt-locker-app .txt-folder-menu-item{
  border:none;
  background:transparent;
  cursor:pointer;
  width:100%;
  text-align:left;
  padding:9px 10px;
  border-radius:9px;
  color:#444;
  font-size:14px;
  font-weight:700;
}
#txt-locker-app .txt-folder-menu-item:hover{background:#f0f0f0}
#txt-locker-app .txt-folder-docs{
  padding-left:18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:6px;
}
#txt-locker-app .txt-doc-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:transparent;
  border-bottom:1px solid #d9d9d9;
  padding:8px 0;
}
#txt-locker-app .txt-doc-item:last-child{
  border-bottom:none;
}
#txt-locker-app .txt-doc-main{
  flex:1;
  min-width:0;
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
  border-radius:8px;
  padding:6px 4px;
  transition:background .18s ease;
}
#txt-locker-app .txt-doc-main:hover{background:rgba(255,255,255,.45)}
#txt-locker-app .txt-doc-item.active .txt-doc-main{
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px #d6d6d6;
}
#txt-locker-app .txt-doc-item.dragging{
  opacity:.45;
}
#txt-locker-app .txt-doc-icon{font-size:22px;line-height:1;flex:0 0 auto}
#txt-locker-app .txt-doc-name{
  flex:1;
  min-width:0;
  font-size:16px;
  color:#333;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.25;
  word-break:break-word;
}
#txt-locker-app .txt-doc-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
#txt-locker-app .txt-doc-action{
  border:none;
  background:transparent;
  cursor:pointer;
  font-size:18px;
  color:#7f7f7f;
  padding:4px;
  border-radius:6px;
  transition:background .18s ease,color .18s ease;
}
#txt-locker-app .txt-doc-action:hover{background:rgba(255,255,255,.6);color:#444}
#txt-locker-app .txt-empty{
  padding:10px 8px;
  color:#888;
  font-size:14px;
}
#txt-locker-app .txt-main{
  flex:1;
  min-width:0;
  padding:12px 12px 12px 10px;
  display:flex;
  flex-direction:column;
}
#txt-locker-app .txt-main-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  background:linear-gradient(to bottom,#f5f5f5,#e8e8e8);
  border:1px solid #d7d7d7;
  border-radius:10px 10px 0 0;
  box-shadow:0 2px 6px rgba(0,0,0,.05);
}
#txt-locker-app .txt-file-meta{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1;
}
#txt-locker-app .txt-file-icon{font-size:28px;line-height:1}
#txt-locker-app .txt-doc-title{
  border:none;
  background:transparent;
  outline:none;
  font-size:18px;
  color:#4a4a4a;
  width:100%;
  min-width:0;
  font-weight:600;
}
#txt-locker-app .txt-top-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
#txt-locker-app .txt-top-btn{
  border:none;
  border-radius:6px;
  background:#d9d9d9;
  color:#444;
  padding:10px 14px;
  cursor:pointer;
  font-size:14px;
  font-weight:700;
  transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease;
}
#txt-locker-app .txt-top-btn:hover{transform:translateY(-1px);opacity:.95}
#txt-locker-app .txt-download-btn{background:#3aa0f3;color:#fff}
#txt-locker-app .txt-panel-toggle-btn{
  border:none;
  border-radius:8px;
  background:#ffffff;
  color:#555;
  min-width:42px;
  height:42px;
  padding:0 10px;
  font-size:20px;
  cursor:pointer;
  box-shadow:0 2px 5px rgba(0,0,0,.06);
  transition:transform .18s ease,background .18s ease;
  flex:0 0 auto;
}
#txt-locker-app .txt-panel-toggle-btn:hover{
  transform:translateY(-1px);
  background:#f9f9f9;
}
#txt-locker-app.sidebar-collapsed .txt-sidebar{
  width:0;
  min-width:0;
  padding:0;
  opacity:0;
  border-right:none;
  overflow:hidden;
}
#txt-locker-app.sidebar-collapsed .txt-main{
  padding-left:12px;
}
#txt-locker-app.is-fullscreen{
  position:fixed;
  inset:0;
  z-index:999999;
  width:100vw;
  height:100vh;
  max-width:none;
  padding:10px;
  background:#e9ecef;
}
#txt-locker-app.is-fullscreen .txt-shell{
  height:calc(100vh - 20px);
  min-height:calc(100vh - 20px);
  border-radius:14px;
}
#txt-locker-app.is-fullscreen .txt-main{min-height:0}
#txt-locker-app.is-fullscreen .txt-editor-wrap{flex:1;min-height:0}
#txt-locker-app.is-fullscreen .txt-editor-stack{min-height:0;height:100%}
#txt-locker-app.is-fullscreen .txt-editor{min-height:0;height:100%}
body.txt-locker-fullscreen-active{overflow:hidden !important}
#txt-locker-app .txt-toolbar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:10px 12px;
  background:#f0f0f0;
  border-left:1px solid #d7d7d7;
  border-right:1px solid #d7d7d7;
  border-bottom:1px solid #dbdbdb;
}
#txt-locker-app .txt-tool-btn{
  border:none;
  border-radius:8px;
  background:#ffffff;
  color:#444;
  min-width:42px;
  height:42px;
  padding:0 12px;
  font-size:18px;
  cursor:pointer;
  box-shadow:0 2px 5px rgba(0,0,0,.06);
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
#txt-locker-app .txt-tool-btn:hover{transform:translateY(-1px);background:#f9f9f9}
#txt-locker-app .txt-tool-btn.is-active{background:#dff0ff;box-shadow:inset 0 0 0 1px #8dc5f5}
#txt-locker-app .txt-tool-btn.txt-danger:hover{background:#ffe5e5}
#txt-locker-app .txt-toolbar-divider{width:1px;height:28px;background:#d0d0d0;margin:0 3px}
#txt-locker-app .txt-find-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
  font-size:13px;
  color:#666;
}
#txt-locker-app .txt-find-wrap input{
  height:38px;
  border:1px solid #d0d0d0;
  border-radius:8px;
  background:#fff;
  padding:0 12px;
  outline:none;
  min-width:180px;
}
#txt-locker-app .txt-editor-wrap{
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
  border:1px solid #d7d7d7;
  border-top:none;
  background:#efefef;
  border-radius:0 0 10px 10px;
  overflow:hidden;
}
#txt-locker-app .txt-editor-stack{
  position:relative;
  flex:1;
  min-height:420px;
  background:#efefef;
  overflow:hidden;
}
#txt-locker-app .txt-highlight-layer{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
  padding:14px 14px 18px;
  font-family:"Courier New",Courier,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";
  font-size:var(--txt-editor-font-size);
  line-height:1.35;
  color:#222;
  white-space:pre-wrap;
  tab-size:4;
  word-break:normal;
  overflow-wrap:normal;
}
#txt-locker-app .txt-u-mark{
  display:inline;
  border-radius:.08em;
  padding:.01em .06em .04em;
  box-shadow:none!important;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
#txt-locker-app .txt-u-green{background:rgba(74,222,128,.40)!important}
#txt-locker-app .txt-u-pink{background:rgba(244,114,182,.40)!important}
#txt-locker-app .txt-u-orange{background:rgba(251,146,60,.42)!important}
#txt-locker-app .txt-u-red{background:rgba(248,113,113,.42)!important}
#txt-locker-app .txt-lock-indicator{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:38px;
  padding:6px 12px;
  border-bottom:2px solid #4aa6ff;
  background:#f5f5f5;
  font-size:14px;
  color:#777;
}
#txt-locker-app .txt-lock-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#bbb;
  display:inline-block;
  box-shadow:0 0 0 3px rgba(0,0,0,.04);
}
#txt-locker-app .txt-lock-dot.locked{background:#32b66a}
#txt-locker-app .txt-editor{
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  min-height:420px;
  border:none;
  outline:none;
  resize:none;
  background:transparent;
  padding:14px 14px 18px;
  font-family:"Courier New",Courier,monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";
  font-size:var(--txt-editor-font-size);
  line-height:1.35;
  color:transparent;
  caret-color:#222;
  overflow:auto;
  white-space:pre-wrap;
  tab-size:4;
}
#txt-locker-app .txt-editor::selection{background:rgba(74,144,226,.35)}
#txt-locker-app .txt-highlight-layer,
#txt-locker-app .txt-editor{
  font-synthesis:none;
}
#txt-locker-app .txt-underline-select{
  height:42px;
  border:1px solid #d0d0d0;
  border-radius:8px;
  background:#fff;
  color:#444;
  padding:0 10px;
  font-size:14px;
  font-weight:700;
  outline:none;
}
#txt-locker-app .txt-underline-btn{font-size:22px;line-height:1}
#txt-locker-app .txt-statusbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  background:#e3e3e3;
  border-top:1px solid #d1d1d1;
  color:#5c5c5c;
  font-size:13px;
}

/* =========================================================
PROYECTO: TXT LOCKER WP - CAMBIO #91
Restaura botón de modo oscuro sin alterar la estructura base
========================================================= */
#txt-locker-app .txt-top-btn.is-dark-toggle-active{background:#444;color:#fff}
#txt-locker-app.is-dark{
  color:#e5e7eb;
}
#txt-locker-app.is-dark .txt-shell{
  background:radial-gradient(circle at 8px 8px, rgba(255,255,255,.07) 1.5px, transparent 1.6px) 0 0/20px 20px,#1f2430;
  border-color:#343b49;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
#txt-locker-app.is-dark .txt-sidebar{background:#2a303b;border-right-color:#3b4350}
#txt-locker-app.is-dark .txt-folder-block{border-bottom-color:#424a58}
#txt-locker-app.is-dark .txt-folder-header:hover,
#txt-locker-app.is-dark .txt-doc-main:hover{background:rgba(255,255,255,.06)}
#txt-locker-app.is-dark .txt-doc-item.active .txt-doc-main{background:rgba(255,255,255,.10);box-shadow:inset 0 0 0 1px #4c5565}
#txt-locker-app.is-dark .txt-folder-name,
#txt-locker-app.is-dark .txt-doc-name,
#txt-locker-app.is-dark .txt-doc-title,
#txt-locker-app.is-dark .txt-file-icon,
#txt-locker-app.is-dark .txt-folder-icon,
#txt-locker-app.is-dark .txt-folder-caret{color:#eef2f7}
#txt-locker-app.is-dark .txt-folder-count,
#txt-locker-app.is-dark .txt-empty,
#txt-locker-app.is-dark .txt-find-wrap,
#txt-locker-app.is-dark .txt-statusbar,
#txt-locker-app.is-dark .txt-lock-indicator{color:#c9d1db}
#txt-locker-app.is-dark .txt-main-topbar{background:linear-gradient(to bottom,#2d3440,#232933);border-color:#3b4350}
#txt-locker-app.is-dark .txt-toolbar{background:#252c36;border-left-color:#3b4350;border-right-color:#3b4350;border-bottom-color:#3b4350}
#txt-locker-app.is-dark .txt-editor-wrap{background:#20262f;border-color:#3b4350}
#txt-locker-app.is-dark .txt-editor-stack{background:#20262f}
#txt-locker-app.is-dark .txt-highlight-layer{color:#f3f4f6}
#txt-locker-app.is-dark .txt-lock-indicator{background:#2b313c;border-bottom-color:#5da8ff}
#txt-locker-app.is-dark .txt-editor{background:transparent;color:transparent;caret-color:#f3f4f6}
#txt-locker-app.is-dark .txt-statusbar{background:#2a3039;border-top-color:#3b4350}
#txt-locker-app.is-dark .txt-top-btn,
#txt-locker-app.is-dark .txt-side-mini-btn{background:#3b4350;color:#edf2f7}
#txt-locker-app.is-dark .txt-download-btn{background:#3aa0f3;color:#fff}
#txt-locker-app.is-dark .txt-panel-toggle-btn,
#txt-locker-app.is-dark .txt-tool-btn{background:#313844;color:#edf2f7;box-shadow:0 2px 5px rgba(0,0,0,.18)}
#txt-locker-app.is-dark .txt-tool-btn:hover,
#txt-locker-app.is-dark .txt-panel-toggle-btn:hover,
#txt-locker-app.is-dark .txt-folder-menu-btn:hover,
#txt-locker-app.is-dark .txt-folder-actions.is-open .txt-folder-menu-btn,
#txt-locker-app.is-dark .txt-doc-action:hover{background:rgba(255,255,255,.09);color:#fff}
#txt-locker-app.is-dark .txt-folder-menu{background:#252c36;border-color:#3b4350;box-shadow:0 16px 35px rgba(0,0,0,.35)}
#txt-locker-app.is-dark .txt-folder-menu-item{color:#edf2f7}
#txt-locker-app.is-dark .txt-folder-menu-item:hover{background:rgba(255,255,255,.08)}
#txt-locker-app.is-dark .txt-folder-menu-btn,
#txt-locker-app.is-dark .txt-doc-action{color:#d6dbe3}
#txt-locker-app.is-dark .txt-find-wrap input,
#txt-locker-app.is-dark .txt-underline-select{background:#1f2430;border-color:#3b4350;color:#f3f4f6}
#txt-locker-app.is-dark.is-fullscreen{background:#161b22}
@media (max-width:980px){
  #txt-locker-app{
    --txt-editor-font-size:22px;
  }
  #txt-locker-app .txt-shell{flex-direction:column}
  #txt-locker-app .txt-sidebar{
    width:100%;
    min-width:0;
    border-right:none;
    border-bottom:1px solid #d7d7d7;
  }
  #txt-locker-app.sidebar-collapsed .txt-sidebar{
    height:0;
    width:100%;
    min-width:0;
    padding:0;
    border-bottom:none;
  }
  #txt-locker-app .txt-find-wrap{
    width:100%;
    margin-left:0;
  }
  #txt-locker-app .txt-find-wrap input{
    flex:1;
    min-width:0;
  }
  #txt-locker-app.is-fullscreen{padding:0}
  #txt-locker-app.is-fullscreen .txt-shell{
    height:100vh;
    min-height:100vh;
    border-radius:0;
  }
}

/* Emoji nativo sin afectar letras ni números */
#txt-locker-app,
#txt-locker-app *{
  font-variant-emoji:normal;
}
#txt-locker-app .txt-folder-icon,
#txt-locker-app .txt-file-icon,
#txt-locker-app .txt-doc-icon,
#txt-locker-app .txt-side-mini-btn,
#txt-locker-app .txt-folder-menu-btn,
#txt-locker-app .txt-folder-menu button,
#txt-locker-app .txt-tool-btn,
#txt-locker-app .txt-top-btn{
  font-variant-emoji:emoji;
}
#txt-locker-app .txt-highlight-layer,
#txt-locker-app .txt-editor{
  font-variant-emoji:normal!important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Courier New",monospace,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji"!important;
}
#txt-locker-app img.emoji{
  display:inline!important;
  width:1em!important;
  height:1em!important;
  margin:0 .05em!important;
  vertical-align:-.12em!important;
}

/* =========================================================
TXT Locker fix 1.0.5
El textarea vuelve a mostrar el texto real para que el cursor,
los saltos de línea y la escritura no dependan de la capa visual.
La capa inferior queda solo para pintar subrayados/fondos.
========================================================= */
#txt-locker-app .txt-highlight-layer{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:none!important;
  overflow:auto!important;
  scrollbar-width:none!important;
}
#txt-locker-app .txt-highlight-layer::-webkit-scrollbar{width:0!important;height:0!important}
#txt-locker-app .txt-u-mark{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
}
#txt-locker-app .txt-editor{
  color:#222!important;
  -webkit-text-fill-color:#222!important;
  caret-color:#222!important;
  text-shadow:none!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
#txt-locker-app .txt-editor::placeholder{
  color:#8b8f97!important;
  -webkit-text-fill-color:#8b8f97!important;
}
#txt-locker-app.is-dark .txt-editor{
  color:#f3f4f6!important;
  -webkit-text-fill-color:#f3f4f6!important;
  caret-color:#f3f4f6!important;
}
#txt-locker-app.is-dark .txt-editor::placeholder{
  color:#9ca3af!important;
  -webkit-text-fill-color:#9ca3af!important;
}
