/* Word Refinery — Real-time word-level editor with atom bank alternatives */
/* Light theme. Design standard v1.0. */

:root {
  --bg:#FAFAFA; --surface:#FFFFFF; --surface2:#EEEEEE; --surface3:rgba(0,0,0,0.02);
  --border:rgba(0, 0, 0, 0.08); --border2:rgba(168,160,208,0.15);
  --text:#111111; --text2:#666666; --text3:#999999;
  --accent:#2563EB; --ok:#7dba7d; --warn:#d4a84d; --err:#c96b6b;
  --mono:'IBM Plex Mono','SF Mono',monospace;
  --head:'IBM Plex Sans',system-ui,sans-serif;
  --t0:#64748B;--t1:#0EA5E9;--t2:#22C55E;--t3:#3B82F6;--t4:#A855F7;
  --t5:#F59E0B;--t6:#6366F1;--t7:#EC4899;--t8:#EF4444;--t9:#94A3B8;
  --t10:#14B8A6;--t11:#F97316;--t12:#78716C;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);
  font-family:var(--mono);font-size:13px;}
body{display:flex;flex-direction:column;}

/* ── HEADER OVERRIDES ──────────────────────────────────────── */
.sovren-header {
  flex-shrink:0;
  background:var(--surface) !important;
  border-bottom:1px solid var(--border) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  padding:0.5rem 1.2rem !important;
}
.sovren-header h1 { color:var(--accent) !important; }
.sovren-header .badge {
  background:rgba(37,99,235,0.08); border-color:rgba(37,99,235,0.3);
  color:var(--accent);
}
.sovren-header .hdr-action-btn {
  font-family:var(--mono); font-size:9px; padding:3px 10px;
  background:transparent; border:1px solid var(--border); color:var(--text2);
  border-radius:4px; cursor:pointer; text-transform:uppercase; letter-spacing:0.08em;
}
.sovren-header .hdr-action-btn:hover { border-color:var(--accent); color:var(--accent); }
.wb-stat { display:flex; align-items:center; gap:0.4rem; font-size:10px; color:var(--text2); }
.wb-status-dot { width:7px; height:7px; border-radius:50%; background:var(--err);
  transition:background 0.3s; flex-shrink:0; }
.wb-status-dot.ok { background:var(--ok); }
#status-text { font-size:9px; color:var(--text2); }
#chr-clear:hover { border-color:var(--err) !important; color:var(--err) !important; }

/* ── WORKSPACE ─────────────────────────────────────────────── */
#workspace{display:flex;flex:1;overflow:hidden;min-height:0;position:relative;}

/* ── PANELS ────────────────────────────────────────────────── */
.panel{display:flex;flex-direction:column;overflow:hidden;min-width:180px;}
#panel-left{width:340px;flex-shrink:0;background:var(--surface);}
#panel-mid{flex:1;background:var(--surface2);}
#panel-right{width:400px;flex-shrink:0;background:var(--surface);}

/* ── DIVIDERS ──────────────────────────────────────────────── */
.divider{
  width:4px;background:var(--border);cursor:col-resize;flex-shrink:0;
  transition:background 0.15s;
}
.divider:hover,.divider.active{background:var(--accent);}

/* ── PANEL HEADERS ─────────────────────────────────────────── */
.ph{
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;border-bottom:1px solid var(--border);
  font-family:var(--head);font-size:10px;letter-spacing:0.1em;
  color:var(--accent);text-transform:uppercase;flex-shrink:0;
}
.ph-sub{font-size:9px;color:var(--text2);font-family:var(--mono);
  text-transform:none;letter-spacing:0;margin-left:auto;}

/* ── LEFT: WRITE PANEL ─────────────────────────────────────── */
#write-wrap{flex:1;display:flex;flex-direction:column;padding:10px;}
#input{
  flex:1;width:100%;background:var(--bg);border:1px solid var(--border);
  border-radius:4px;padding:10px 12px;color:var(--text);font-family:var(--mono);
  font-size:12px;outline:none;resize:none;line-height:1.7;
  transition:border-color 0.15s;
}
#input:focus{border-color:var(--accent);}
#input::placeholder{color:var(--text3);}
#write-hint{font-size:8px;color:var(--text2);margin-top:6px;padding:0 2px;}

/* ── MIDDLE: ALTERNATIVES PANEL ────────────────────────────── */
#alt-wrap{flex:1;overflow-y:auto;padding:8px 10px;}
#alt-empty{
  color:var(--text3);font-size:9px;text-align:center;
  padding:30px 10px;line-height:1.9;pointer-events:none;
}
#alt-tiles{display:flex;flex-direction:column;gap:8px;}
.alt-group{margin-bottom:4px;}
.alt-group-label{
  font-size:7px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--text2);margin-bottom:5px;padding:0 2px;
}
.alt-tiles-row{display:flex;flex-wrap:wrap;gap:5px;}

/* ── ALTERNATIVE TILE ──────────────────────────────────────── */
.alt-tile{
  background:var(--surface);border:1px solid var(--border);border-radius:5px;
  padding:7px 10px;cursor:grab;user-select:none;
  transition:all 0.15s;display:flex;flex-direction:column;gap:3px;
  min-width:80px;max-width:160px;position:relative;
}
.alt-tile:hover{border-color:var(--accent);background:rgba(37,99,235,0.04);}
.alt-tile:active{cursor:grabbing;opacity:0.7;}
.alt-tile.dragging{opacity:0.4;border-style:dashed;}
.alt-tile-word{font-size:12px;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.alt-tile-def{font-size:9px;color:var(--text2);line-height:1.5;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;}
.alt-tile-badge{
  font-size:8px;padding:2px 5px;border-radius:3px;
  border:1px solid var(--border);color:var(--text2);
  background:var(--bg);
  display:inline-block;width:fit-content;margin-top:2px;
}
.alt-tile-score{
  position:absolute;top:4px;right:6px;font-size:8px;
  color:var(--accent);opacity:0.8;
}

/* ── RIGHT: CLASSIFIED DOCUMENT ────────────────────────────── */
#doc-wrap{flex:1;overflow-y:auto;padding:12px 14px;}
#doc-content{}
#doc-empty{
  color:var(--text3);font-size:10px;text-align:center;
  padding:30px 20px;line-height:2;pointer-events:none;
}

/* ── SENTENCE BLOCK ────────────────────────────────────────── */
.sentence-block{
  margin-bottom:18px;border-left:4px solid var(--border);
  padding:8px 0 8px 16px;transition:border-color 0.3s;
}
.sentence-tier-bar{
  display:flex;align-items:center;gap:8px;margin-bottom:6px;
}
.tier-badge{
  font-size:9px;font-family:var(--head);letter-spacing:0.06em;
  text-transform:uppercase;padding:3px 8px;border-radius:3px;
  border:1px solid;
}
.tier-conf{font-size:9px;color:var(--text2);}
.sentence-text{
  font-family:Georgia,serif;font-size:15px;line-height:2;
  color:var(--text);word-spacing:2px;
}

/* ── DOCUMENT WORD SPANS ───────────────────────────────────── */
.dw{
  display:inline;position:relative;cursor:pointer;
  border-bottom:2px solid transparent;transition:all 0.15s;
  border-radius:2px;padding:1px 3px;
  color:var(--text) !important;
}
.dw:hover{background:rgba(0,0,0,0.04);
  border-bottom-color:rgba(0,0,0,0.12);}
.dw.selected{border-bottom-color:var(--accent);
  background:rgba(37,99,235,0.06);}
.dw.drop-target{border:1px dashed var(--accent);background:rgba(37,99,235,0.08);}
.dw-bc{
  font-size:7px;font-family:var(--mono);vertical-align:super;
  opacity:0;margin-left:1px;transition:opacity 0.15s;pointer-events:none;
}
.dw:hover .dw-bc{opacity:0.5;}

/* ── STATS BAR ─────────────────────────────────────────────── */
#stats-bar{
  flex-shrink:0;border-top:1px solid var(--border);
  padding:7px 12px;background:var(--surface2);
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.stat-item{font-size:8px;color:var(--text2);}
.stat-item strong{color:var(--text);font-size:9px;}
.domain-chips{display:flex;gap:4px;flex-wrap:wrap;}
.dc{font-size:7px;padding:2px 5px;border-radius:3px;border:1px solid;}
#copy-btn{
  margin-left:auto;font-family:var(--mono);font-size:8px;
  padding:3px 10px;background:transparent;border:1px solid var(--border);
  color:var(--text2);border-radius:4px;cursor:pointer;transition:all 0.15s;
}
#copy-btn:hover{border-color:var(--ok);color:var(--ok);}
#copy-btn.copied{border-color:var(--ok);color:var(--ok);}

/* ── TOOLTIP ───────────────────────────────────────────────── */
#tip{
  position:fixed;z-index:1000;background:var(--surface);
  border:1px solid var(--border);border-radius:6px;
  padding:8px 10px;font-size:9px;max-width:260px;
  pointer-events:none;opacity:0;transition:opacity 0.12s;
  line-height:1.5;box-shadow:0 4px 12px rgba(0,0,0,0.08);
}
#tip.show{opacity:1;}
#tip-word{color:var(--accent);font-size:10px;font-weight:700;}
#tip-bc{color:var(--text2);font-size:8px;margin-top:1px;}
#tip-def{color:var(--text);margin-top:4px;}
#tip-domain{
  display:inline-block;margin-top:4px;font-size:8px;
  background:rgba(37,99,235,0.06);border:1px solid var(--border);
  border-radius:3px;padding:1px 5px;color:var(--accent);
}

/* ── SCROLLBARS ────────────────────────────────────────────── */
::-webkit-scrollbar{width:3px;height:3px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.08);border-radius:2px;}

/* ── DOMAIN COLORS — monotone (domain shown in tooltip only) ─ */
.d-scientific,.d-empirical,.d-historical,.d-institutional,
.d-contextual,.d-subjective,.d-belief,.d-linguistic,.d-structural,
.d-universal,.d-meta,.d-computational,.d-undecidable,.d-semantic,
.d-disputed{color:inherit;}

/* ── ANIMATIONS ────────────────────────────────────────────── */
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}
.pending{color:var(--text2);animation:pulse 1s infinite;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}
.sentence-block{animation:fadeIn 0.2s ease-out;}

/* ── AGENT STATUS LINE (left panel) ────────────────────────── */
.agent-status { font-size:8px; color:var(--text2); padding:4px 2px;
  display:flex; align-items:center; gap:5px; min-height:20px; }
.agent-dot { width:5px; height:5px; border-radius:50%;
  background:var(--text3); flex-shrink:0; }
.agent-dot.active { background:var(--accent); animation:pulse 1.5s infinite; }
.agent-dot.warn { background:var(--warn); }
.agent-dot.ok { background:var(--ok); }

/* ── AUTO-SUGGESTION GROUPS (middle panel) ─────────────────── */
.auto-section-label { font-size:7px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent); margin-bottom:6px; padding-bottom:4px;
  border-bottom:1px solid var(--border); }
.weak-word-group { margin-bottom:10px; }
.weak-word-header { font-size:9px; color:var(--text); margin-bottom:4px;
  display:flex; align-items:center; gap:6px; }
.weak-word-header .orig-score { font-size:7px; padding:1px 4px; border-radius:2px;
  border:1px solid var(--err); color:var(--err); background:rgba(220,38,38,0.06); }
.weak-word-header .arrow { color:var(--text3); font-size:8px; }
.weak-word-header .best-score { font-size:7px; padding:1px 4px; border-radius:2px;
  border:1px solid var(--ok); color:var(--ok); background:rgba(22,163,74,0.06); }
.auto-badge { font-size:6px; padding:0 3px; border-radius:2px;
  background:var(--accent); color:#fff; position:absolute;
  top:2px; left:4px; font-weight:700; letter-spacing:0.05em; }
.auto-divider { border:none; border-top:1px solid var(--border); margin:8px 0; }

/* ── DOCUMENT ANALYSIS (right panel) ───────────────────────── */
#doc-analysis { border-top:1px solid var(--border); padding:8px 12px;
  background:var(--surface2); flex-shrink:0; }
.doc-insight { font-size:8px; color:var(--text2); margin-bottom:4px;
  display:flex; align-items:baseline; gap:5px; }
.doc-insight .label { color:var(--text3); min-width:80px; }
.doc-insight .value { color:var(--text); }
.doc-insight-bar { height:3px; border-radius:1px; margin:2px 0 6px;
  background:var(--border); overflow:hidden; }
.doc-insight-bar-fill { height:100%; border-radius:1px; transition:width 0.3s; }

/* ── SPELLCHECK CHIPS ──────────────────────────────────────── */
#spell-corrections { display:flex;flex-wrap:wrap;gap:4px;padding:4px 2px; }
#spell-corrections:empty { display:none; }
.spell-chip { font-size:8px;padding:2px 6px;border-radius:3px;
  border:1px solid rgba(220,38,38,0.25);background:rgba(220,38,38,0.04);
  color:var(--text);cursor:pointer;transition:all 0.15s;
  display:inline-flex;align-items:center;gap:3px; }
.spell-chip:hover { border-color:var(--err);background:rgba(220,38,38,0.08); }
.spell-chip .wrong { text-decoration:line-through;color:var(--err);opacity:0.7; }
.spell-chip .correct { color:var(--ok);font-weight:600; }

/* ── OPTIMIZE PROSE ────────────────────────────────────────── */
#optimize-btn { font-family:var(--mono);font-size:8px;padding:4px 10px;
  background:rgba(22,163,74,0.06);border:1px solid rgba(22,163,74,0.25);
  color:var(--ok);border-radius:4px;cursor:pointer;width:100%;
  text-transform:uppercase;letter-spacing:0.08em;margin-top:4px; }
#optimize-btn:hover { background:rgba(22,163,74,0.12);border-color:var(--ok); }
#optimize-btn:disabled { opacity:0.4;cursor:default; }
#optimize-btn.running { border-color:var(--warn);color:var(--warn);animation:pulse 1s infinite; }
#optimize-status { font-size:7px;color:var(--text2);padding:2px 0;text-align:center; }
@keyframes wordGlow { 0%{box-shadow:0 0 8px var(--ok);}100%{box-shadow:none;} }
.dw.optimized { animation:wordGlow 0.6s ease-out; }

/* ── SVG CONNECTION LINES ──────────────────────────────────── */
#connections-svg { position:absolute;top:0;left:0;width:100%;height:100%;
  pointer-events:none;z-index:5;overflow:visible; }
.conn-bezier { fill:none;stroke:rgba(37,99,235,0.2);stroke-width:1.5;
  stroke-dasharray:6 3;animation:connDash 2s linear infinite; }
@keyframes connDash { to { stroke-dashoffset:-18; } }
.conn-dot { fill:rgba(37,99,235,0.3); }

/* ── AI INSIGHT BOXES ──────────────────────────────────────── */
.ai-insight { font-size:8px;color:var(--text);padding:6px 8px;margin-top:6px;
  background:rgba(37,99,235,0.03);border-left:2px solid rgba(37,99,235,0.2);
  border-radius:0 3px 3px 0;line-height:1.6; }
.ai-insight.loading { color:var(--text2);animation:pulse 1.5s infinite; }
.ai-insight-label { font-size:6px;color:var(--accent);letter-spacing:0.1em;
  text-transform:uppercase;margin-bottom:3px;opacity:0.7; }

/* ── LLM SETTINGS ──────────────────────────────────────────── */
#chr-settings.configured { border-color:var(--ok);color:var(--ok); }
#settings-popover { position:absolute;top:42px;right:10px;z-index:100;
  background:var(--surface);border:1px solid var(--border);border-radius:6px;
  padding:12px;width:250px;display:none;box-shadow:0 4px 12px rgba(0,0,0,0.08); }
#settings-popover .set-title { font-family:var(--head);font-size:8px;
  color:var(--accent);letter-spacing:0.1em;text-transform:uppercase;
  margin-bottom:8px; }
#settings-popover label { display:block;font-size:7px;color:var(--text2);
  letter-spacing:0.08em;text-transform:uppercase;margin-bottom:8px; }
#settings-popover input { width:100%;font-family:var(--mono);font-size:9px;
  background:var(--bg);border:1px solid var(--border);border-radius:4px;
  color:var(--text);padding:4px 6px;margin-top:2px;outline:none;
  box-sizing:border-box; }
#settings-popover input:focus { border-color:var(--accent); }
#set-save { width:100%;margin-top:8px;font-family:var(--mono);font-size:8px;
  padding:4px;background:rgba(37,99,235,0.06);border:1px solid var(--border);
  color:var(--accent);border-radius:4px;cursor:pointer;text-transform:uppercase;
  letter-spacing:0.08em; }
#set-save:hover { background:rgba(37,99,235,0.1); }
#set-status { font-size:7px;color:var(--text2);text-align:center;
  margin-top:4px; }
