/* === src/ui/UIProactiveCards.js === */
.briefing-card {
    display: flex; gap: 12px; align-items: flex-start;
    margin: 8px 0; animation: fadeInUp .3s ease;
  }
  .briefing-card .message-avatar {
    width: 36px; height: 36px; border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-color, #6366f1), #8b5cf6);
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; flex-shrink: 0; color: white;
  }
  .briefing-card .briefing-body {
    flex: 1; background: rgba(99,102,241,.07);
    border: 1px solid rgba(99,102,241,.18);
    border-radius: 14px; padding: 12px 16px;
  }
  .briefing-card .briefing-header {
    display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
  }
  .briefing-card .briefing-label {
    font-size: 11px; font-weight: 600; letter-spacing: .5px;
    color: var(--primary-color, #6366f1); text-transform: uppercase;
  }
  .briefing-card .briefing-time {
    font-size: 11px; color: var(--text-secondary, #888); margin-left: auto;
  }
  .briefing-card .briefing-text {
    font-size: 14px; line-height: 1.6; color: var(--text-primary, #e2e8f0);
    white-space: pre-wrap;
  }
  .briefing-card .briefing-feedback {
    display: flex; gap: 8px; margin-top: 12px;
  }
  .briefing-feedback-btn {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 14px; font-size: 13px; font-weight: 500;
    border: 1px solid rgba(99,102,241,.3);
    border-radius: 20px; background: rgba(99,102,241,.07);
    color: var(--primary-color, #6366f1); cursor: pointer;
    transition: all .18s;
  }
  .briefing-feedback-btn:hover:not(:disabled) {
    background: rgba(99,102,241,.18); transform: translateY(-1px);
  }
  .briefing-feedback-btn:disabled { opacity: .5; cursor: default; }
  .briefing-feedback-done {
    font-size: 13px; color: var(--text-secondary, #888);
    margin-top: 10px; display: flex; align-items: center; gap: 5px;
  }

/* === src/ui/UISettingsView.js === */
.ags-view { position:relative;width:100%;min-height:100%;background:var(--bg-color);font-family:'Inter',-apple-system,sans-serif;color:var(--text-primary);overflow-x:hidden; }
  .ags-glow { position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 15% 25%,rgba(var(--primary-rgb),.18) 0%,transparent 45%),radial-gradient(circle at 85% 75%,rgba(var(--secondary-rgb),.12) 0%,transparent 45%); }
  .ags-wrap { position:relative;z-index:1;margin:0 auto;padding:28px 24px 48px;display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start;max-width:1400px; }
  .ags-main { display:flex;flex-direction:column;gap:20px;min-width:0; }
  .ags-sidebar { display:flex;flex-direction:column;gap:16px; }
  .ags-card { background:var(--card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:24px;padding:24px;box-shadow:var(--card-shadow); }
  .ags-card-title { font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px;display:flex;align-items:center;gap:8px; }
  .ags-dot { display:inline-block;width:6px;height:6px;border-radius:50%;background:rgba(var(--primary-rgb),.8);flex-shrink:0; }
  .ags-hero { background:linear-gradient(135deg,rgba(var(--primary-rgb),.15) 0%,rgba(var(--secondary-rgb),.1) 100%);border:1px solid rgba(var(--primary-rgb),.2);border-radius:24px;padding:28px;position:relative;overflow:hidden; }
  .ags-hero-glow { position:absolute;top:-60px;right:-60px;width:200px;height:200px;background:rgba(var(--primary-rgb),.12);filter:blur(80px);border-radius:50%;pointer-events:none; }
  .ags-hero-title { font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:6px; }
  .ags-hero-sub { font-size:13px;color:var(--text-muted); }
  .ags-skills-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:12px; }
  .ags-skill-card { background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:16px;padding:16px;display:flex;align-items:flex-start;gap:12px;cursor:pointer;transition:all .2s; }
  .ags-skill-card:hover { background:rgba(var(--primary-rgb),.08);border-color:rgba(var(--primary-rgb),.3);transform:translateY(-2px); }
  .ags-skill-icon { font-size:26px;flex-shrink:0;line-height:1; }
  .ags-skill-name { font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px; }
  .ags-skill-desc { font-size:12px;color:var(--text-secondary);line-height:1.4; }
  .ags-skill-badge { margin-left:auto;flex-shrink:0;font-size:10px;font-weight:600;padding:2px 8px;background:rgba(var(--primary-rgb),.15);color:rgba(var(--primary-rgb),1);border-radius:8px;white-space:nowrap; }
  .ags-tool-item { display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface-tertiary);border:1px solid var(--border-color);border-radius:12px;margin-bottom:8px;transition:all .15s; }
  .ags-tool-item:last-child { margin-bottom:0; }
  .ags-tool-item:hover { background:rgba(var(--primary-rgb),.06);border-color:rgba(var(--primary-rgb),.2); }
  .ags-tool-dot { width:8px;height:8px;border-radius:50%;background:var(--color-success);box-shadow:0 0 6px rgba(var(--color-success),.5);flex-shrink:0; }
  .ags-tool-dot.off { background:var(--text-muted);box-shadow:none; }
  .ags-tool-name { font-size:13px;font-weight:500;color:var(--text-primary);flex:1; }
  .ags-tool-server { font-size:11px;color:var(--text-muted); }
  .ags-theme-row { display:flex;gap:10px;flex-wrap:wrap;margin-top:4px; }
  .ags-theme-circle { width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .2s; }
  .ags-theme-circle.active { border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.4); }
  .ags-theme-circle:hover { transform:scale(1.15); }
  .ags-toggle-wrap { display:flex;align-items:center;justify-content:space-between;gap:12px; }
  .ags-toggle-info { flex:1; }
  .ags-toggle-label { font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:3px; }
  .ags-toggle-desc { font-size:12px;color:var(--text-muted);line-height:1.4; }
  .ags-toggle { position:relative;width:44px;height:24px;flex-shrink:0; }
  .ags-toggle input { opacity:0;width:0;height:0; }
  .ags-toggle-slider { position:absolute;cursor:pointer;inset:0;background:var(--surface-secondary);border-radius:24px;transition:.3s; }
  .ags-toggle-slider::before { content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s; }
  .ags-toggle input:checked + .ags-toggle-slider { background:rgba(var(--primary-rgb),1); }
  .ags-toggle input:checked + .ags-toggle-slider::before { transform:translateX(20px); }
  .ags-status-row { display:flex;align-items:center;gap:8px;font-size:13px; }
  .ags-status-dot { width:8px;height:8px;border-radius:50%;background:var(--color-success);flex-shrink:0; }
  .ags-status-dot.err { background:var(--color-error); }
  .ags-skeleton { background:linear-gradient(90deg,var(--surface-secondary) 25%,var(--surface-tertiary) 50%,var(--surface-secondary) 75%);background-size:200% 100%;animation:ags-shimmer 1.4s infinite;border-radius:8px;height:80px;margin-bottom:12px; }
  .ags-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; cursor: pointer; user-select: none; }
  .ags-card-header .ags-card-title { margin-bottom: 0; }
  .ags-collapse-icon { font-size: 18px; color: var(--text-secondary); transition: transform 0.3s; }
  .ags-collapsed .ags-collapse-icon { transform: rotate(-90deg); }
  .ags-collapsed .ags-card-body { display: none; }
  .ags-card-body { animation: fadeIn 0.3s ease-out; }
  @keyframes ags-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
  .ags-empty { text-align:center;color:var(--text-muted);font-size:13px;padding:32px 16px; }
  .ags-tabs { display:flex;gap:4px;margin-bottom:24px;background:var(--surface-secondary);border-radius:14px;padding:4px;border:1px solid var(--border-color); }
  .ags-tab-btn { flex:1;padding:10px 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;background:transparent;color:var(--text-secondary); }
  .ags-tab-btn.active { background:rgba(var(--primary-rgb),.15);color:rgba(var(--primary-rgb),1);box-shadow:0 2px 8px rgba(var(--primary-rgb),.15); }
  .ags-tab-btn:hover:not(.active) { color:var(--text-primary);background:var(--surface-secondary); }
  .ags-tab-panel { display:none; }
  .ags-tab-panel.active { display:contents; }
  @media(max-width:900px){ .ags-tab-panel.active { display:block; } }
  @media(max-width:900px){ .ags-wrap{grid-template-columns:1fr} .ags-skills-grid{grid-template-columns:1fr} }
  /* Memory page integration adjustments */
  #ags-memory-container .memory-page { padding: 0; background: transparent; border: none; }
  #ags-memory-container .memory-header { display: none; }
  #ags-memory-container .memory-content { margin-top: 16px; }
  #ags-memory-container .memory-scope-selector { margin-bottom: 16px; }

/* === src/ui/UIForwardModal.js === */
.fwd-overlay { position:fixed;inset:0;background:var(--overlay-bg,rgba(0,0,0,.75));backdrop-filter:blur(6px);z-index:3100;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s }
  .fwd-modal { background:var(--card-bg);border:1px solid var(--card-border);border-radius:20px;padding:28px;width:90%;max-width:440px;animation:modalSlideIn .25s;box-shadow:var(--shadow-lg); }
  .fwd-title { font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:6px }
  .fwd-sub { font-size:13px;color:var(--text-secondary);margin-bottom:18px }
  .fwd-list { max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:18px }
  .fwd-member { display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:1px solid var(--border-color);cursor:pointer;transition:all .15s;background:transparent }
  .fwd-member:hover { background:var(--hover-bg);border-color:rgba(var(--primary-rgb),.3) }
  .fwd-member.sending { opacity:.6;pointer-events:none }
  .fwd-member.sent { border-color:var(--color-success);background:rgba(var(--color-success-rgb,34,197,94),.08) }
  .fwd-avatar { width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--surface-secondary);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;color:var(--text-secondary) }
  .fwd-name { font-size:14px;color:var(--text-primary);font-weight:500 }
  .fwd-status { margin-left:auto;font-size:12px;color:var(--text-muted) }
  .fwd-cancel { width:100%;padding:12px;border:1px solid var(--border-color);border-radius:12px;background:transparent;color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .15s }
  .fwd-cancel:hover { background:var(--hover-bg) }

/* === src/ui/UIToasts.js === */
#reminder-toast {
    position:fixed;top:20px;left:50%;transform:translateX(-50%);
    background:var(--card-bg);border:1px solid var(--primary-color);border-radius:14px;
    padding:14px 18px;max-width:360px;width:90%;
    display:flex;align-items:flex-start;gap:12px;
    box-shadow:var(--card-shadow);z-index:2147483647;
    font-family:inherit;color:var(--text-primary);
    animation:_rToastIn .2s ease;pointer-events:all;
  }
  @keyframes _rToastIn {
    from{opacity:0;transform:translateX(-50%) translateY(-12px)}
    to{opacity:1;transform:translateX(-50%) translateY(0)}
  }

/* === src/ui/UIMessageRenderer.js === */
.msg-actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:10px; }
  .msg-action-btn {
    display:inline-flex;align-items:center;gap:5px;
    padding:6px 14px;font-size:13px;font-weight:500;
    border:1px solid rgba(var(--primary-rgb),.35);
    border-radius:20px;background:rgba(var(--primary-rgb),.08);
    color:rgba(var(--primary-rgb),1);cursor:pointer;transition:all .18s;
  }
  .msg-action-btn:hover:not(:disabled){background:rgba(var(--primary-rgb),.18);}
  .msg-action-btn:disabled{opacity:.55;cursor:default;}

/* === src/utils/EmojiRenderer.js === */
.emoji-icon {
      display: inline-flex !important;
      align-items: center;
      justify-content: center;
      vertical-align: middle;
      flex-shrink: 0;
      user-select: none;
      pointer-events: none;
      margin-right: 0.3em;
  }

  .emoji-icon svg {
      display: block;
      width: 0.85em;
      height: 0.85em;
      stroke: var(--primary-color, #2196f3);
      fill: none;
      stroke-width: 2.2;
      stroke-linecap: round;
      stroke-linejoin: round;
      overflow: visible;
  }

  /* Цветные точки прогресса — сохраняем fill */
  .emoji-icon svg circle[fill],
  .emoji-icon svg path[fill]:not([fill="none"]) {
      stroke: none;
  }

  /* Контекстный размер: в сообщениях чуть крупнее */
  .message-text .emoji-icon svg {
      width: 0.9em;
      height: 0.9em;
  }

  /* В кнопках чуть мельче */
  button .emoji-icon svg {
      width: 0.8em;
      height: 0.8em;
  }

/* === Extracted from bootstrap.js (reminder toast) === */
#reminder-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:var(--card-bg);border:1px solid var(--primary-color);border-radius:14px;padding:14px 18px;max-width:360px;width:90%;display:flex;align-items:flex-start;gap:12px;box-shadow:var(--card-shadow);z-index:2147483647;font-family:inherit;color:var(--text-primary);animation:_rToastIn .2s ease}@keyframes _rToastIn{from{opacity:0;transform:translateX(-50%) translateY(-12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
