@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Caveat:wght@600;700&display=swap');

:root{
  --bg:#060B0C;
  --bg-deep:#04080A;
  --panel:#0D1516;
  --panel-raised:#121C1D;
  --line:#1C2B2C;
  --line-bright:#2E4547;
  --ink:#E8ECE9;
  --ink-soft:#8FA6A3;
  --ink-faint:#4B615F;
  --accent:#3AA6A0;
  --iris1:#0E4F52;
  --iris2:#1B7A75;
  --iris3:#3AA6A0;
  --iris4:#5FD9D0;
  --danger:#E0546B;

  --fisica:#2F80A6;
  --analisis:#1FAE6E;
  --algebra:#3AA6A0;
  --algoritmos:#0E7C8C;
  --logica:#4FA8C7;
  --ingles:#2C7873;
  --negocios:#63C9B8;
  --sociedad:#1E6B5C;

  --paper:#F3EDDD;
  --paper-ink:#2B261E;
  --paper-line:#DCD2B6;

  --radius:10px;
}

*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:'Inter', sans-serif;
  background:var(--bg);
  color:var(--ink);
  min-height:100vh;
  line-height:1.5;
  overflow-x:hidden;
}
#bgCanvas{position:fixed; inset:0; z-index:0; opacity:0.5; pointer-events:none;}
.app, .overlay{position:relative; z-index:1;}
h1,h2,h3,.display{font-family:'Space Grotesk', sans-serif; font-weight:600; letter-spacing:-0.01em;}
.mono{font-family:'JetBrains Mono', monospace;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
button:focus-visible, input:focus-visible, textarea:focus-visible{outline:1.5px solid var(--accent); outline-offset:2px;}
textarea,input{font-family:inherit;}
textarea{background:var(--bg); color:var(--ink); border:1px solid var(--line-bright); border-radius:7px; padding:10px 12px; font-size:0.86rem;}
textarea::placeholder{color:var(--ink-faint);}
::selection{background:rgba(58,166,160,0.28);}

.iris-text{
  background:linear-gradient(120deg, var(--iris1), var(--iris2), var(--iris3), var(--iris4), var(--iris1));
  background-size:300% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:irisShift 6s linear infinite;
}
.iris-border{
  border:1px solid transparent;
  background-image:linear-gradient(var(--bgclip,var(--panel)), var(--bgclip,var(--panel))), linear-gradient(120deg, var(--iris1), var(--iris2), var(--iris3), var(--iris4), var(--iris1));
  background-origin:border-box;
  background-clip:padding-box, border-box;
  background-size:100% 100%, 300% 100%;
  animation:irisShift 6s linear infinite;
}
@keyframes irisShift{ to{ background-position:-300% 0, -300% 0; } }
.iris-ring{
  border-radius:50%;
  background:conic-gradient(var(--iris1), var(--iris2), var(--iris3), var(--iris4), var(--iris1));
  animation:irisSpin 5s linear infinite;
}
@keyframes irisSpin{ to{ transform:rotate(360deg); } }

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

/* ---------- LAYOUT ---------- */
.app{min-height:100vh;}
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 36px;
  border-bottom:1px solid var(--line);
  background:rgba(6,11,12,0.82);
  backdrop-filter:blur(8px);
  position:sticky; top:0; z-index:20;
}
.brand{font-size:1.14rem; display:flex; align-items:center; gap:9px; color:var(--ink);}
.brand .blip{width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 9px var(--accent); animation:blipPulse 2.2s ease-in-out infinite;}
@keyframes blipPulse{0%,100%{opacity:1;} 50%{opacity:0.35;}}

.connection-badge{
  --bgclip:#0D1516;
  display:flex; align-items:center; gap:8px;
  border-radius:20px;
  padding:7px 14px 7px 10px;
}
.connection-badge .cdot{width:7px; height:7px; flex-shrink:0;}
.connection-badge .ctext{font-family:'JetBrains Mono', monospace; font-size:0.68rem; color:#B9D3D0;}
.connection-badge .ctext b{font-size:0.72rem;}

.tabbar{
  display:flex; align-items:center; gap:8px;
  padding:14px 36px;
  overflow-x:auto;
  border-bottom:1px solid var(--line);
  background:rgba(6,11,12,0.7);
  backdrop-filter:blur(6px);
  position:sticky; top:63px; z-index:19;
  scrollbar-width:thin;
}
.tab-divider{width:1px; height:22px; background:var(--line-bright); flex-shrink:0; margin:0 2px;}
.tab-chip{
  display:flex; align-items:center; gap:7px;
  padding:8px 16px;
  border-radius:20px;
  font-size:0.85rem;
  color:var(--ink-soft);
  background:var(--panel);
  border:1px solid var(--line);
  white-space:nowrap;
  flex-shrink:0;
  transition:transform 0.15s, box-shadow 0.15s, background 0.15s, color 0.15s, border-color 0.15s;
}
.tab-chip svg{flex-shrink:0; width:15px; height:15px; opacity:0.75;}
.tab-chip:hover{border-color:var(--line-bright); color:var(--ink);}
.tab-chip.tier-teorica{opacity:0.82; font-size:0.8rem; padding:7px 14px;}
.tab-chip.active{
  color:var(--ink);
  background:color-mix(in srgb, var(--tab-dot) 16%, var(--panel));
  border-color:color-mix(in srgb, var(--tab-dot) 55%, var(--line));
  transform:translateY(-2px);
  box-shadow:0 6px 16px -8px color-mix(in srgb, var(--tab-dot) 60%, transparent);
  opacity:1;
}
.tab-chip.active svg{opacity:1;}
.tab-chip.home-tab.active{
  background:color-mix(in srgb, var(--iris2) 16%, var(--panel));
  border-color:color-mix(in srgb, var(--iris2) 55%, var(--line));
}
.tab-pct{font-family:'JetBrains Mono', monospace; font-size:0.68rem; color:var(--ink-faint);}
.tab-chip.active .tab-pct{color:var(--tab-dot);}

.main{padding:34px 40px 90px; max-width:1130px; margin:0 auto;}

/* ---------- HOME ---------- */
.page-title{font-size:1.9rem; margin-bottom:3px; display:flex; align-items:center; gap:12px;}
.page-eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:0.7rem; letter-spacing:0.14em;
  color:var(--accent); text-transform:uppercase; margin-bottom:8px; display:flex; align-items:center; gap:8px;
}
.page-eyebrow::before{content:''; width:22px; height:1px; background:var(--accent);}
.page-sub{color:var(--ink-soft); font-size:0.93rem; margin-bottom:26px;}

.hub-card{
  background:radial-gradient(ellipse at 50% 30%, rgba(27,122,117,0.1), transparent 60%), var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px 10px 8px;
  margin-bottom:26px;
  position:relative; overflow:hidden;
}
.hub-card svg{width:100%; height:auto; display:block;}
.hub-caption{text-align:center; font-family:'JetBrains Mono', monospace; font-size:0.68rem; color:var(--ink-faint); letter-spacing:0.06em; padding:6px 0 14px;}
.hub-node-label{font-family:'Inter',sans-serif; font-size:11px; font-weight:600; text-anchor:middle; fill:var(--ink);}
.hub-line{stroke-dasharray:3 5; animation:flowLine 2.5s linear infinite;}
@keyframes flowLine{ to{ stroke-dashoffset:-16; } }

.grid-2{display:grid; grid-template-columns:1.3fr 1fr; gap:20px; align-items:start;}
@media (max-width:880px){.grid-2{grid-template-columns:1fr;} .hub-card{display:none;}}

.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px 24px;
  position:relative;
  transition:transform 0.12s ease-out, box-shadow 0.2s;
  transform-style:preserve-3d;
  will-change:transform;
}
.card::before, .card::after{content:''; position:absolute; width:10px; height:10px; border-color:var(--line-bright); border-style:solid; opacity:0.8;}
.card::before{top:-1px; left:-1px; border-width:1px 0 0 1px;}
.card::after{bottom:-1px; right:-1px; border-width:0 1px 1px 0;}
.card:hover{box-shadow:0 18px 40px -18px rgba(0,0,0,0.55);}
.card + .card{margin-top:16px;}
.card-title{font-size:0.98rem; display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.card-title .display{font-size:1.08rem;}

.exam-row{display:flex; align-items:center; gap:14px; padding:12px 0; border-top:1px solid var(--line);}
.exam-row:first-of-type{border-top:none;}
.exam-date-chip{font-family:'JetBrains Mono', monospace; font-size:0.74rem; background:var(--bg); border:1px solid var(--line-bright); border-radius:6px; padding:6px 9px; text-align:center; min-width:58px; flex-shrink:0; color:var(--ink-soft);}
.exam-date-chip.urgent{background:rgba(224,84,107,0.1); border-color:rgba(224,84,107,0.5); color:#FF8FA0;}
.exam-info{flex:1;}
.exam-subject{font-family:'JetBrains Mono', monospace; font-size:0.64rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-faint);}
.exam-name{font-size:0.9rem; font-weight:500;}
.empty-note{color:var(--ink-faint); font-size:0.85rem; padding:8px 0; font-family:'JetBrains Mono', monospace;}

.task-row{display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-top:1px solid var(--line);}
.task-row:first-of-type{border-top:none;}
.task-check{width:17px; height:17px; border-radius:4px; border:1.5px solid var(--ink-faint); flex-shrink:0; margin-top:2px; display:flex; align-items:center; justify-content:center;}
.task-check.done{background:var(--accent); border-color:var(--accent); box-shadow:0 0 8px rgba(58,166,160,0.5);}
.task-check.done::after{content:'✓'; color:#04120C; font-size:11px; font-weight:700;}
.task-text{font-size:0.89rem; flex:1;}
.task-text.done{color:var(--ink-faint); text-decoration:line-through;}
.task-del{color:var(--ink-faint); font-size:0.75rem; padding:2px 6px;}
.task-del:hover{color:var(--danger);}

.add-row{display:flex; gap:8px; margin-top:14px;}
.add-row input, .add-row select, .add-row textarea{flex:1; border:1px solid var(--line-bright); border-radius:7px; padding:8px 10px; font-size:0.86rem; background:var(--bg); color:var(--ink);}
.add-row input::placeholder, .add-row textarea::placeholder{color:var(--ink-faint);}
.btn{background:var(--accent); color:#04120C; border-radius:7px; padding:8px 16px; font-size:0.83rem; font-weight:600; white-space:nowrap; transition:box-shadow 0.15s, transform 0.1s;}
.btn:hover{box-shadow:0 0 14px rgba(58,166,160,0.4);}
.btn:active{transform:scale(0.97);}
.btn.claude{background:linear-gradient(120deg, var(--iris1), var(--iris2), var(--iris3), var(--iris4), var(--iris1)); background-size:300% 100%; animation:irisShift 6s linear infinite; color:#04120C; font-weight:700;}
.btn.claude:hover{box-shadow:0 0 18px rgba(58,166,160,0.4);}
.btn.ghost{background:transparent; color:var(--ink-soft); border:1px solid var(--line-bright);}
.btn.small{padding:5px 11px; font-size:0.76rem;}
.btn:disabled{opacity:0.5; cursor:not-allowed; box-shadow:none;}

.stat-row{display:flex; gap:14px; margin-bottom:22px; flex-wrap:wrap;}
.stat-chip{flex:1; min-width:150px; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 16px;}
.stat-chip .stat-num{font-family:'Space Grotesk', sans-serif; font-size:1.7rem; font-weight:700; display:flex; align-items:baseline; gap:4px;}
.stat-chip .stat-num small{font-size:0.8rem; color:var(--ink-faint); font-family:'JetBrains Mono', monospace; font-weight:400;}
.stat-chip .stat-label{font-family:'JetBrains Mono', monospace; font-size:0.66rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:0.08em; margin-top:3px;}

.radar-card svg{width:100%; height:auto; display:block;}
.radar-axis-label{font-family:'JetBrains Mono', monospace; font-size:9px; fill:var(--ink-faint);}
.radar-fill{animation:radarGrow 0.9s ease-out;}
@keyframes radarGrow{ from{ transform:scale(0.4); opacity:0; transform-origin:center; } to{ transform:scale(1); opacity:1; } }

/* ---------- SUBJECT HEADER ---------- */
.subject-header{
  border-radius:var(--radius); padding:28px 30px 24px; margin-bottom:28px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--wash) 18%, var(--panel)), var(--panel-raised));
  border:1px solid color-mix(in srgb, var(--wash) 32%, var(--line));
  position:relative; overflow:hidden;
  transition:transform 0.12s ease-out;
  transform-style:preserve-3d;
}
.subject-header::before{content:''; position:absolute; inset:0; background:repeating-linear-gradient(115deg, transparent 0 24px, color-mix(in srgb, var(--wash) 5%, transparent) 24px 25px); pointer-events:none;}
.subject-header .icon-watermark{position:absolute; right:8px; top:8px; width:120px; height:120px; opacity:0.07; color:var(--wash);}
.subject-header .tag{font-family:'JetBrains Mono', monospace; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--wash); margin-bottom:8px; display:flex; align-items:center; gap:7px;}
.subject-header .tag::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--wash); box-shadow:0 0 7px var(--wash);}
.subject-header h1{font-size:1.85rem; color:var(--ink); display:flex; align-items:center; gap:12px; position:relative; z-index:1;}
.subject-header .head-icon{width:36px; height:36px; background:color-mix(in srgb, var(--wash) 15%, transparent); border:1px solid color-mix(in srgb, var(--wash) 42%, transparent); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--wash); flex-shrink:0;}
.subject-header .exams-inline{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; position:relative; z-index:1;}
.exam-pill{background:color-mix(in srgb, var(--wash) 9%, transparent); border:1px solid color-mix(in srgb, var(--wash) 32%, transparent); border-radius:6px; padding:6px 12px; font-family:'JetBrains Mono', monospace; font-size:0.76rem; color:var(--ink); display:flex; align-items:center; gap:8px;}
.exam-pill button{color:var(--ink-faint); font-size:0.9rem;}
.exam-pill button:hover{color:var(--danger);}

/* ---------- SECTIONS ---------- */
.section{margin-bottom:36px;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:16px;}
.section-head h2{font-size:1.2rem;}
.section-head .hint{font-family:'JetBrains Mono', monospace; font-size:0.72rem; color:var(--ink-faint);}

/* ---------- LEVEL MAP ---------- */
.level-map{display:flex; flex-wrap:wrap; gap:0; padding:30px 14px 10px;}
.level-node-wrap{display:flex; flex-direction:column; align-items:center; width:140px; padding-bottom:20px;}
.level-node-wrap:nth-child(even){margin-top:34px;}
.level-node{
  width:60px; height:60px; clip-path:polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0% 50%);
  display:flex; align-items:center; justify-content:center; background:var(--panel-raised); border:1.5px solid var(--line-bright);
  color:var(--ink-faint); transition:transform 0.15s; position:relative; z-index:1;
}
.level-node:hover{transform:scale(1.06);}
.level-node.progress{border-color:var(--wash); color:var(--wash); animation:hexPulse 2.2s ease-in-out infinite;}
@keyframes hexPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--wash) 35%, transparent);} 50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--wash) 0%, transparent);}}
.level-node.done{
  background:color-mix(in srgb, var(--wash) 20%, var(--panel-raised)); border-color:var(--wash); color:var(--wash);
  box-shadow:0 0 20px color-mix(in srgb, var(--wash) 42%, transparent), 0 0 40px color-mix(in srgb, var(--wash) 16%, transparent);
  animation:activate 0.5s ease;
}
@keyframes activate{0%{transform:scale(0.6); opacity:0.3;} 60%{transform:scale(1.1);} 100%{transform:scale(1);}}
.level-node svg{width:22px; height:22px;}
.level-label{font-size:0.77rem; text-align:center; margin-top:11px; color:var(--ink-soft); max-width:130px; line-height:1.3; font-weight:500;}
.level-status{font-family:'JetBrains Mono', monospace; font-size:0.65rem; color:var(--ink-faint); margin-top:2px; text-transform:uppercase; letter-spacing:0.05em;}
.add-node-btn{width:60px; height:60px; clip-path:polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0% 50%); border:1.5px dashed var(--line-bright); background:transparent; color:var(--ink-faint); display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0;}
.add-node-btn:hover{border-color:var(--accent); color:var(--accent);}

/* ---------- TOPIC LIST (teoricas) ---------- */
.topic-list{display:flex; flex-direction:column; gap:0;}
.topic-row{display:flex; align-items:center; gap:12px; padding:13px 4px; border-top:1px solid var(--line); cursor:pointer;}
.topic-row:first-child{border-top:none;}
.topic-icon{width:26px; height:26px; border-radius:6px; border:1.5px solid var(--wash); flex-shrink:0; display:flex; align-items:center; justify-content:center; color:var(--wash);}
.topic-icon svg{width:15px; height:15px;}
.topic-icon.done{background:color-mix(in srgb, var(--wash) 22%, transparent); box-shadow:0 0 8px color-mix(in srgb, var(--wash) 40%, transparent);}
.topic-icon.progress{background:color-mix(in srgb, var(--wash) 12%, transparent);}
.topic-row-name{flex:1; font-size:0.9rem;}
.topic-row-status{font-family:'JetBrains Mono', monospace; font-size:0.68rem; color:var(--ink-faint); text-transform:uppercase;}

/* ---------- CHAT ---------- */
.chat-box{display:flex; flex-direction:column; gap:10px; max-height:420px; min-height:80px; overflow-y:auto; padding:4px 2px 10px;}
.chat-msg{max-width:82%; padding:10px 13px; border-radius:10px; font-size:0.87rem; line-height:1.55; white-space:pre-wrap;}
.chat-msg.user{align-self:flex-end; background:color-mix(in srgb, var(--wash) 16%, var(--panel-raised)); border:1px solid color-mix(in srgb, var(--wash) 36%, var(--line-bright)); color:var(--ink);}
.chat-msg.assistant{align-self:flex-start; background:var(--panel-raised); border:1px solid var(--line-bright); color:var(--ink);}
.chat-tag{font-family:'JetBrains Mono', monospace; font-size:0.6rem; color:var(--accent); text-transform:uppercase; margin-bottom:5px; display:flex; align-items:center; gap:5px;}
.chat-tag svg{width:10px; height:10px;}
.chat-input-row{display:flex; gap:8px; margin-top:6px; align-items:flex-end;}
.chat-input-row textarea{flex:1; min-height:46px; max-height:130px; resize:vertical; border:1px solid var(--line-bright); border-radius:7px; padding:10px 12px; font-size:0.86rem; background:var(--bg); color:var(--ink);}
.chat-input-row .btn{padding:11px 16px;}

/* ---------- MODAL ---------- */
.overlay{position:fixed; inset:0; background:rgba(4,6,7,0.72); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:24px; z-index:50;}
.hidden{display:none !important;}
.panel{background:var(--panel-raised); border:1px solid var(--line-bright); border-radius:12px; width:100%; max-width:700px; max-height:88vh; overflow-y:auto; padding:30px 32px; box-shadow:0 30px 70px -20px rgba(0,0,0,0.6);}
.panel-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:6px;}
.panel-head input.topic-name-input{font-family:'Space Grotesk', sans-serif; font-size:1.35rem; font-weight:600; border:none; background:none; width:100%; color:var(--ink);}
.panel-head input.topic-name-input:focus{outline:none; border-bottom:1.5px solid var(--dot);}
.panel-close{font-size:1.2rem; color:var(--ink-faint); padding:4px 8px; flex-shrink:0;}
.panel-close:hover{color:var(--ink);}
.status-toggle{display:flex; gap:6px; margin:14px 0 22px;}
.status-btn{padding:6px 13px; border-radius:6px; font-size:0.75rem; font-family:'JetBrains Mono', monospace; border:1px solid var(--line-bright); color:var(--ink-soft);}
.status-btn.active{background:var(--dot); border-color:var(--dot); color:#04120C;}
.panel label.field-label{font-family:'JetBrains Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-faint); display:block; margin-bottom:7px; margin-top:20px;}
.panel textarea{width:100%; min-height:110px; resize:vertical; border:1px solid var(--line-bright); border-radius:8px; padding:12px 14px; font-size:0.86rem; background:var(--bg); color:var(--ink);}
.gen-btn-row{display:flex; align-items:center; gap:10px; margin-top:10px;}
.gen-btn-row svg{width:15px; height:15px;}

/* ---------- PAPER FOLDER (fórmulas / esquemas) ---------- */
.paper-folder{margin-top:20px; position:relative;}
.paper-tab{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--paper); color:var(--paper-ink);
  border:1px solid var(--paper-line); border-bottom:none;
  border-radius:8px 8px 0 0;
  padding:6px 14px 8px;
  font-family:'JetBrains Mono', monospace; font-size:0.66rem; letter-spacing:0.05em; text-transform:uppercase;
  margin-left:14px;
  position:relative; top:1px;
}
.paper-tab svg{width:12px; height:12px;}
.paper-sheet{
  background:
    repeating-linear-gradient(115deg, rgba(43,38,30,0.025) 0 2px, transparent 2px 5px),
    var(--paper);
  border:1px solid var(--paper-line);
  border-radius:4px 10px 10px 10px;
  padding:20px 22px;
  color:var(--paper-ink);
  font-size:0.88rem;
  line-height:1.7;
  white-space:pre-wrap;
  font-family:'JetBrains Mono', monospace;
  box-shadow:0 14px 30px -16px rgba(0,0,0,0.5);
}
.paper-sheet.empty{color:#8A8066; font-style:italic; font-family:'Inter',sans-serif;}
.paper-sheet .scheme-tag{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'JetBrains Mono', monospace; font-weight:700; font-size:0.62rem;
  border-radius:4px; padding:2px 8px 2px 6px; letter-spacing:0.06em; text-transform:uppercase;
  margin-bottom:10px; background:rgba(43,38,30,0.06);
}
.paper-sheet .scheme-tag svg{width:11px; height:11px; color:var(--iris3);}
.paper-sheet .seal-stamp{
  position:absolute; top:-14px; right:14px;
  font-family:'Caveat', cursive; font-weight:700; font-size:1.05rem;
  color:var(--dot); border:2px solid var(--dot); border-radius:8px;
  padding:1px 10px; transform:rotate(6deg); opacity:0.85; background:var(--paper);
}
.loading-dots::after{content:'···'; animation:blink 1.2s infinite;}
@keyframes blink{0%,100%{opacity:0.3;} 50%{opacity:1;}}
.cursor-blink{display:inline-block; width:7px; height:14px; background:var(--iris3); margin-left:1px; animation:blink 0.9s step-start infinite; vertical-align:text-bottom;}

/* ---------- ERRORS ---------- */
.error-list{display:flex; flex-direction:column; gap:0;}
.error-row{display:flex; align-items:center; gap:12px; padding:11px 4px; border-top:1px solid var(--line); flex-wrap:wrap;}
.error-row:first-child{border-top:none;}
.error-count{font-family:'JetBrains Mono', monospace; font-size:0.72rem; font-weight:700; background:rgba(224,84,107,0.13); color:#FF8FA0; border:1px solid rgba(224,84,107,0.4); border-radius:5px; padding:2px 8px; flex-shrink:0;}
.error-text{flex:1; font-size:0.87rem; min-width:120px;}
.error-del{color:var(--ink-faint); font-size:0.78rem;}
.error-del:hover{color:var(--danger);}
.reinforce-tag{font-family:'JetBrains Mono', monospace; font-size:0.65rem; color:var(--danger); margin-left:4px; text-transform:uppercase;}

/* ---------- MODELS ---------- */
.model-row{padding:13px 4px; border-top:1px solid var(--line);}
.model-row:first-child{border-top:none;}
.model-title-row{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.model-title{font-size:0.88rem; font-weight:500;}
.model-date{font-size:0.7rem; color:var(--ink-faint); font-family:'JetBrains Mono', monospace;}
.model-notes{font-size:0.83rem; color:var(--ink-soft); margin-top:5px; white-space:pre-wrap;}

.loading-screen{position:fixed; inset:0; background:var(--bg); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px; font-family:'JetBrains Mono', monospace; color:var(--accent); font-size:0.95rem; z-index:100; letter-spacing:0.05em;}

/* La caja de apuntes ocupa todo el ancho de su tarjeta. */
#theoryInput{display:block; width:100%; resize:vertical;}
