/* ── Denial Copilot dock ─────────────────────────────────────────────────── */

.copilot-fab {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    border: none;
    background: linear-gradient(140deg, var(--app-navy, #0D2447), var(--app-teal, #00C5A8));
    color: #fff;
    font-size: 1.35rem;
    box-shadow: var(--app-shadow-lg, 0 8px 24px rgba(13,36,71,.25));
    z-index: 1080;
    transition: transform var(--app-fast, .15s) var(--app-ease, ease), opacity var(--app-fast, .15s);
}
.copilot-fab:hover { transform: translateY(-2px) scale(1.04); }
.copilot-fab--hidden { opacity: 0; pointer-events: none; transform: scale(.8); }

.copilot-dock {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    width: min(420px, calc(100vw - 2rem));
    height: min(640px, calc(100vh - 2.5rem));
    display: flex;
    flex-direction: column;
    background: var(--app-white, #fff);
    border: 1px solid var(--app-glass-border, rgba(13,36,71,.12));
    border-radius: var(--app-r-lg, 16px);
    box-shadow: var(--app-shadow-lift, 0 24px 60px rgba(9,26,54,.28));
    z-index: 1081;
    overflow: hidden;
    animation: copilot-rise .18s var(--app-ease, ease);
}
@keyframes copilot-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.copilot-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem .85rem;
    background: linear-gradient(120deg, var(--app-navy, #0D2447), #14315c);
    color: #fff;
}
.copilot-title { font-weight: 600; font-size: .98rem; }
.copilot-head-actions .btn-link { color: rgba(255,255,255,.85) !important; }
.copilot-head-actions .btn-link:hover { color: #fff !important; }

.copilot-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: .85rem;
    background: var(--app-bg, #F2F6FC);
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.copilot-empty { text-align: center; margin: auto 0; }
.copilot-suggestions { display: flex; flex-direction: column; gap: .4rem; }
.copilot-suggestions button {
    border: 1px solid var(--app-glass-border, rgba(13,36,71,.12));
    background: var(--app-white, #fff);
    border-radius: var(--app-r, 10px);
    padding: .45rem .65rem;
    font-size: .85rem;
    text-align: left;
    color: var(--app-text, #1b2a44);
    transition: border-color var(--app-fast, .15s);
}
.copilot-suggestions button:hover { border-color: var(--app-teal, #00C5A8); }

.copilot-msg { display: flex; }
.copilot-msg--user { justify-content: flex-end; }
.copilot-msg--assistant, .copilot-msg--error { justify-content: flex-start; }

.copilot-bubble {
    max-width: 85%;
    padding: .5rem .7rem;
    border-radius: var(--app-r, 10px);
    font-size: .9rem;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
}
.copilot-msg--user .copilot-bubble { background: var(--app-navy, #0D2447); color: #fff; border-bottom-right-radius: 4px; }
.copilot-msg--assistant .copilot-bubble { background: var(--app-white, #fff); color: var(--app-text, #1b2a44); border: 1px solid var(--app-glass-border, rgba(13,36,71,.1)); border-bottom-left-radius: 4px; }
.copilot-msg--error .copilot-bubble { background: #fdecec; color: #842029; border: 1px solid #f5c2c7; }

.copilot-tool {
    align-self: flex-start;
    font-size: .78rem;
    color: var(--app-text-2, #5a6b86);
    background: var(--app-surface-2, #E6EEF8);
    border-radius: 999px;
    padding: .2rem .6rem;
}

/* Markdown-rendered assistant content */
.copilot-md > :first-child { margin-top: 0; }
.copilot-md > :last-child { margin-bottom: 0; }
.copilot-md p { margin: 0 0 .5rem; }
.copilot-md ul, .copilot-md ol { margin: 0 0 .5rem; padding-left: 1.2rem; }
.copilot-md code { background: var(--app-bg, #F2F6FC); padding: .05rem .3rem; border-radius: 4px; font-size: .82em; }
.copilot-md pre { background: var(--app-bg, #F2F6FC); padding: .5rem .6rem; border-radius: var(--app-r-sm, 6px); overflow-x: auto; }
.copilot-md pre code { background: none; padding: 0; }
.copilot-md table { border-collapse: collapse; width: 100%; font-size: .82rem; margin: 0 0 .5rem; }
.copilot-md th, .copilot-md td { border: 1px solid var(--app-glass-border, rgba(13,36,71,.12)); padding: .25rem .45rem; text-align: left; }
.copilot-md th { background: var(--app-surface-2, #E6EEF8); }
.copilot-md a { color: var(--app-teal-ink, #00897b); }

/* Citation chips */
.copilot-citations { display: flex; flex-wrap: wrap; gap: .3rem; margin: .15rem 0 0 .1rem; max-width: 85%; }
.copilot-citation {
    display: inline-flex; align-items: center; gap: .3rem;
    border: 1px solid var(--app-glass-border, rgba(13,36,71,.14));
    background: var(--app-white, #fff);
    border-radius: 999px; padding: .12rem .5rem .12rem .2rem;
    font-size: .74rem; color: var(--app-text-2, #5a6b86); max-width: 100%;
}
.copilot-citation:hover { border-color: var(--app-teal, #00C5A8); }
.copilot-citation--static { cursor: default; }
.copilot-citation-idx {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.05rem; height: 1.05rem; border-radius: 50%;
    background: var(--app-surface-2, #E6EEF8); color: var(--app-navy, #0D2447);
    font-size: .65rem; font-weight: 600; flex: 0 0 auto;
}
.copilot-citation-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 14rem; }

/* Copy button under an answer */
.copilot-copy {
    align-self: flex-start; border: none; background: none;
    color: var(--app-text-3, #8896ad); font-size: .78rem; padding: .1rem .15rem; margin-top: .05rem;
}
.copilot-copy:hover { color: var(--app-navy, #0D2447); }

/* Sub-agent / activity affordance */
.copilot-activity {
    align-self: flex-start; max-width: 90%;
    background: var(--app-white, #fff);
    border: 1px solid var(--app-glass-border, rgba(13,36,71,.12));
    border-left: 3px solid var(--app-teal, #00C5A8);
    border-radius: var(--app-r-sm, 6px); padding: .4rem .55rem; font-size: .8rem;
}
.copilot-activity--done { border-left-color: var(--app-text-3, #8896ad); }
.copilot-activity-head { display: flex; align-items: center; gap: .4rem; font-weight: 500; color: var(--app-navy, #0D2447); }
.copilot-activity-steps { list-style: none; margin: .3rem 0 0; padding: 0 0 0 1.3rem; color: var(--app-text-2, #5a6b86); }
.copilot-activity-steps li { font-size: .76rem; padding: .05rem 0; }
.copilot-activity-steps li::before { content: "›"; margin-right: .35rem; color: var(--app-teal, #00C5A8); }

/* Follow-up suggestion chips */
.copilot-followups { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .1rem; }
.copilot-followups button {
    border: 1px dashed var(--app-glass-border, rgba(13,36,71,.2));
    background: transparent; border-radius: 999px; padding: .22rem .6rem;
    font-size: .78rem; color: var(--app-text-2, #5a6b86);
}
.copilot-followups button:hover { border-style: solid; border-color: var(--app-teal, #00C5A8); color: var(--app-navy, #0D2447); }

/* Thread history panel */
.copilot-history { border-bottom: 1px solid var(--app-glass-border, rgba(13,36,71,.1)); background: var(--app-white, #fff); max-height: 16rem; overflow-y: auto; }
.copilot-history-head { display: flex; align-items: center; justify-content: space-between; padding: .5rem .75rem; font-weight: 600; font-size: .82rem; color: var(--app-navy, #0D2447); }
.copilot-history-empty { padding: .75rem; font-size: .82rem; color: var(--app-text-3, #8896ad); text-align: center; }
.copilot-history-list { list-style: none; margin: 0; padding: 0; }
.copilot-history-row { display: flex; align-items: center; border-top: 1px solid var(--app-glass-border, rgba(13,36,71,.06)); }
.copilot-history-item { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; background: none; border: none; text-align: left; padding: .45rem .75rem; }
.copilot-history-item:hover { background: var(--app-bg, #F2F6FC); }
.copilot-history-title { font-size: .85rem; color: var(--app-text, #1b2a44); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 17rem; }
.copilot-history-meta { font-size: .72rem; color: var(--app-text-3, #8896ad); }
.copilot-history-del { flex: 0 0 auto; margin-right: .4rem; }

.copilot-typing { display: inline-flex; gap: .25rem; padding: .4rem .2rem; }
.copilot-typing span {
    width: .45rem; height: .45rem; border-radius: 50%;
    background: var(--app-text-3, #8896ad);
    animation: copilot-blink 1.2s infinite ease-in-out;
}
.copilot-typing span:nth-child(2) { animation-delay: .2s; }
.copilot-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes copilot-blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }

.copilot-compose {
    display: flex;
    gap: .4rem;
    padding: .6rem;
    border-top: 1px solid var(--app-glass-border, rgba(13,36,71,.1));
    background: var(--app-white, #fff);
}
.copilot-compose textarea { resize: none; font-size: .9rem; }

/* Confirmation card */
.copilot-confirm {
    background: var(--app-white, #fff);
    border: 1px solid var(--app-teal, #00C5A8);
    border-radius: var(--app-r, 10px);
    padding: .7rem;
    font-size: .88rem;
}
.copilot-confirm-head { font-weight: 600; color: var(--app-navy, #0D2447); margin-bottom: .25rem; }
.copilot-confirm-desc { margin-bottom: .4rem; }
.copilot-affected { list-style: none; padding: 0; margin: 0 0 .4rem; display: flex; flex-direction: column; gap: .25rem; }
.copilot-affected li { background: var(--app-bg, #F2F6FC); border-radius: var(--app-r-sm, 6px); padding: .3rem .5rem; }
.copilot-affected-title { display: block; font-weight: 500; }
.copilot-affected-change { display: block; font-size: .8rem; color: var(--app-text-2, #5a6b86); }
.copilot-confirm-actions { display: flex; gap: .4rem; flex-wrap: wrap; }
