*{margin:0;padding:0;box-sizing:border-box}

:root{
  --bg:#0a0a0f;--bg2:#12121a;--bg3:#1a1a26;
  --text:#e8e6f0;--text2:#9895a8;--text3:#5e5b6e;
  --border:#2a2838;--accent:#7c6cf0;
  --l1:#7F77DD;--l1bg:#1e1c3a;--l1t:#c4c0f0;
  --l2:#1D9E75;--l2bg:#0e2a22;--l2t:#7eddbb;
  --l3:#EF9F27;--l3bg:#2a2010;--l3t:#f0c870;
  --grp:#5e5b6e;--grpbg:#18182a;--grpt:#9895a8;
  --tech:#4a4860;--techbg:#141425;--techt:#7e7a94;
  --root:#e8e6f0;
  --inh:#D85A30;--inhbg:#2a1810;--inht:#F0997B;
  --danger:#e74c3c;--dangerbg:#2a1010;
  --success:#2ecc71;--successbg:#0e2a16;
}

[data-theme="light"]{
  --bg:#f5f4f8;--bg2:#fff;--bg3:#eeedf2;
  --text:#1a1a2e;--text2:#5e5b6e;--text3:#9895a8;
  --border:#d8d6e0;--accent:#6c5ce7;
  --l1:#534AB7;--l1bg:#EEEDFE;--l1t:#3C3489;
  --l2:#0F6E56;--l2bg:#E1F5EE;--l2t:#085041;
  --l3:#BA7517;--l3bg:#FAEEDA;--l3t:#633806;
  --grp:#888780;--grpbg:#F1EFE8;--grpt:#444441;
  --tech:#a09f98;--techbg:#E8E7E0;--techt:#666560;
  --root:#1a1a2e;
  --inh:#D85A30;--inhbg:#FAECE7;--inht:#712B13;
  --danger:#c0392b;--dangerbg:#fdecea;
  --success:#27ae60;--successbg:#e8f8f0;
}

body{
  font-family:'Outfit',sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
}

/* --- Header / Nav --- */
.site-header{
  position:fixed;top:0;left:0;right:0;
  height:44px;display:flex;align-items:center;justify-content:space-between;
  padding:0 16px;
  background:var(--bg2);border-bottom:1px solid var(--border);
  z-index:100;backdrop-filter:blur(20px);
}
.site-header h1{font-size:14px;font-weight:500}
.site-header h1 span{color:var(--text3);font-weight:300;margin-left:4px}
.header-controls{display:flex;align-items:center;gap:6px}

.nav{display:flex;gap:2px;margin-left:16px}
.nav a{
  font-size:11px;padding:4px 10px;border-radius:5px;
  color:var(--text2);text-decoration:none;transition:all 0.15s;
}
.nav a:hover{background:var(--bg3);color:var(--text)}
.nav a.active{background:var(--accent);color:#fff}

/* --- Buttons --- */
.btn{
  font-family:'Outfit',sans-serif;
  font-size:11px;padding:4px 10px;border-radius:5px;
  border:1px solid var(--border);background:transparent;
  color:var(--text2);cursor:pointer;transition:all 0.15s;
}
.btn:hover{background:var(--bg3);color:var(--text)}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-primary:hover{opacity:0.85}
.btn-danger{color:var(--danger);border-color:var(--danger)}
.btn-danger:hover{background:var(--dangerbg)}
.btn-sm{font-size:10px;padding:2px 8px}

/* --- Inputs --- */
input[type="text"],input[type="password"],textarea,select{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;padding:6px 10px;border-radius:5px;
  border:1px solid var(--border);background:var(--bg);
  color:var(--text);outline:none;width:100%;
}
input:focus,textarea:focus,select:focus{border-color:var(--accent)}
textarea{resize:vertical;min-height:60px;font-family:'Outfit',sans-serif;font-size:12px}
::placeholder{color:var(--text3)}

/* --- Badge --- */
.badge{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:9px;min-width:16px;height:16px;padding:0 4px;
  border-radius:8px;background:var(--accent);color:#fff;
  font-family:'JetBrains Mono',monospace;
}

/* --- Level badges --- */
.level-badge{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;padding:2px 6px;border-radius:3px;display:inline-block;
}
.level-badge.l1{background:var(--l1bg);color:var(--l1t)}
.level-badge.l2{background:var(--l2bg);color:var(--l2t)}
.level-badge.l3{background:var(--l3bg);color:var(--l3t)}
.level-badge.sector{background:var(--grpbg);color:var(--grpt)}
.level-badge.inh{background:var(--inhbg);color:var(--inht)}

/* --- Status badges --- */
.status{
  font-size:9px;padding:2px 6px;border-radius:3px;
  font-family:'JetBrains Mono',monospace;
}
.status-proposed{background:var(--l3bg);color:var(--l3t)}
.status-approved{background:var(--l2bg);color:var(--l2t)}
.status-rejected{background:var(--dangerbg);color:var(--danger)}
.status-added{background:var(--successbg);color:var(--success)}

/* --- Toast --- */
.toast{
  position:fixed;bottom:20px;right:20px;
  padding:10px 16px;border-radius:6px;
  background:var(--bg2);border:1px solid var(--border);
  color:var(--text);font-size:12px;
  z-index:9999;opacity:0;transition:opacity 0.3s;
  pointer-events:none;
}
.toast.show{opacity:1;pointer-events:auto}
.toast.error{border-color:var(--danger);color:var(--danger)}

/* --- Modal --- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.6);
  display:none;align-items:center;justify-content:center;z-index:200;
}
.modal-overlay.open{display:flex}
.modal{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:8px;padding:24px;width:340px;max-width:90vw;
}
.modal h2{font-size:16px;margin-bottom:16px;font-weight:500}
.modal .form-group{margin-bottom:12px}
.modal label{font-size:11px;color:var(--text2);display:block;margin-bottom:4px}
.modal .form-actions{display:flex;gap:8px;margin-top:16px}

/* --- Scrollbar --- */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text3)}

/* --- Spinner --- */
.spinner{
  width:20px;height:20px;border:2px solid var(--border);
  border-top-color:var(--accent);border-radius:50%;
  animation:spin 0.6s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* --- User bar --- */
.user-bar{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2)}
.user-bar .username{color:var(--text);font-weight:500}

/* --- Mic button (voice input) --- */
.mic-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:5px;
  border:1px solid var(--border);background:transparent;
  color:var(--text3);cursor:pointer;transition:all 0.15s;
  flex-shrink:0;vertical-align:middle;padding:0;
}
.mic-btn:hover{background:var(--bg3);color:var(--text)}
.mic-btn.recording{
  background:var(--danger);border-color:var(--danger);
  color:#fff;animation:mic-pulse 1s ease-in-out infinite;
}
.mic-btn.processing{
  background:var(--accent);border-color:var(--accent);
  color:#fff;opacity:0.7;pointer-events:none;
}
.mic-btn.mic-error{
  border-color:var(--danger);color:var(--danger);
  animation:mic-shake 0.3s ease;
}
@keyframes mic-pulse{
  0%,100%{opacity:1}
  50%{opacity:0.5}
}
@keyframes mic-shake{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-2px)}
  75%{transform:translateX(2px)}
}
.mic-tooltip{
  position:fixed;
  transform:translateY(-50%);
  background:var(--bg2);border:1px solid var(--danger);
  color:var(--danger);font-size:10px;padding:4px 8px;
  border-radius:5px;white-space:nowrap;
  opacity:0;transition:opacity 0.2s;pointer-events:none;
  z-index:9999;
}
.mic-tooltip.show{opacity:1}
