/* =========================================================
   MANU 0.2
   INTERFACE TECNOLÓGICA
   ========================================================= */

:root {

    --manu-green: #43b02a;
    --manu-green-light: #62d84a;
    --manu-green-dark: #278518;

    --background: #07100f;
    --background-soft: #0b1715;

    --panel: rgba(12, 27, 24, 0.92);
    --panel-soft: rgba(17, 36, 32, 0.72);

    --border: rgba(100, 255, 155, 0.12);
    --border-strong: rgba(67, 176, 42, 0.35);

    --text: #edf7f2;
    --text-soft: #a8bbb4;
    --text-muted: #71867e;

    --shadow:
        0 20px 60px rgba(0, 0, 0, 0.35);

    --green-glow:
        0 0 25px rgba(67, 176, 42, 0.22);
}


/* RESET */

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


html,
body {
    width: 100%;
    height: 100%;
}


body {

    font-family:
        Inter,
        "Segoe UI",
        Arial,
        sans-serif;

    background:
        radial-gradient(
            circle at 70% 15%,
            rgba(67, 176, 42, 0.09),
            transparent 32%
        ),
        radial-gradient(
            circle at 15% 80%,
            rgba(0, 126, 104, 0.08),
            transparent 30%
        ),
        var(--background);

    color: var(--text);

    overflow: hidden;
}


/* =========================================================
   FUNDO TECNOLÓGICO
   ========================================================= */

.tech-background {

    position: fixed;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            115deg,
            transparent 20%,
            rgba(67, 176, 42, 0.025),
            transparent 65%
        );
}


.tech-grid {

    position: fixed;
    inset: 0;

    pointer-events: none;

    opacity: 0.28;

    background-image:
        linear-gradient(
            rgba(67, 176, 42, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(67, 176, 42, 0.035) 1px,
            transparent 1px
        );

    background-size:
        42px 42px;

    mask-image:
        linear-gradient(
            to bottom,
            black,
            transparent 90%
        );
}


/* =========================================================
   APP
   ========================================================= */

.app {

    position: relative;

    display: flex;

    width: 100%;
    height: 100vh;

    z-index: 1;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.sidebar {

    width: 270px;
    min-width: 270px;

    padding: 26px 20px;

    display: flex;
    flex-direction: column;
    height: 100vh;
    min-height: 0;
    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            rgba(10, 24, 21, 0.98),
            rgba(6, 16, 14, 0.98)
        );

    border-right:
        1px solid var(--border);

    box-shadow:
        20px 0 50px rgba(0, 0, 0, 0.18);
}

.brand,
.new-chat {
    flex: 0 0 auto;
}

.sidebar-scroll-region {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding-right: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #3f6950 transparent;
}

.sidebar-scroll-region::-webkit-scrollbar { width: 6px; }
.sidebar-scroll-region::-webkit-scrollbar-track { background: transparent; }
.sidebar-scroll-region::-webkit-scrollbar-thumb {
    border: 1px solid transparent;
    border-radius: 999px;
    background: #3f6950;
    background-clip: padding-box;
}
.sidebar-scroll-region::-webkit-scrollbar-thumb:hover {
    background: #5b966c;
    background-clip: padding-box;
}


.brand {

    display: flex;
    align-items: center;

    gap: 13px;

    padding:
        4px 5px 26px;
}


.brand-avatar,
.top-avatar {

    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            135deg,
            var(--manu-green-light),
            var(--manu-green-dark)
        );

    color: white;

    font-weight: 800;

    box-shadow:
        var(--green-glow);
}


.brand-avatar {

    width: 56px;
    height: 56px;

    flex: 0 0 56px;

    border-radius: 16px;
    background: transparent;
    box-shadow: none;
}

.brand-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}


.avatar-status {

    position: absolute;

    right: -2px;
    bottom: -2px;

    width: 11px;
    height: 11px;

    background: #6cff76;

    border:
        2px solid #0a1815;

    border-radius: 50%;
}


.brand-text h1 {

    font-size: 20px;
    letter-spacing: 3px;
}


.brand-text span {

    display: block;

    margin-top: 3px;

    color: var(--text-muted);

    font-size: 11px;
}


.new-chat {

    width: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 13px 16px;

    border:
        1px solid var(--border-strong);

    border-radius: 12px;

    background:
        linear-gradient(
            135deg,
            rgba(67, 176, 42, 0.16),
            rgba(67, 176, 42, 0.06)
        );

    color: #dfffd9;

    font-size: 13px;
    font-weight: 600;

    cursor: pointer;

    transition: 0.25s;
}


.new-chat:hover {

    transform:
        translateY(-1px);

    background:
        rgba(67, 176, 42, 0.22);

    box-shadow:
        var(--green-glow);
}


.menu-label {

    margin:
        30px 10px 10px;

    color: #536a62;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 1.6px;
}


.menu {

    display: flex;
    flex-direction: column;

    gap: 5px;
}


.menu-item {

    width: 100%;

    padding:
        11px 12px;

    display: flex;
    align-items: center;

    gap: 11px;

    border:
        1px solid transparent;

    border-radius: 10px;

    background: transparent;

    color: #8fa39b;

    cursor: pointer;

    text-align: left;

    transition: 0.2s;
}


.menu-item:hover {

    color: white;

    background:
        rgba(255, 255, 255, 0.035);
}


.menu-item.active {

    color: #dfffd9;

    background:
        linear-gradient(
            90deg,
            rgba(67, 176, 42, 0.14),
            transparent
        );

    border-color:
        rgba(67, 176, 42, 0.15);
}


.menu-icon {

    color: var(--manu-green-light);

    font-size: 16px;
}


.sidebar-card {

    margin-top: auto;

    padding: 17px;

    border:
        1px solid var(--border);

    border-radius: 14px;

    background:
        rgba(255, 255, 255, 0.025);
}


.sidebar-card-label {

    display: block;

    margin-bottom: 9px;

    color: var(--manu-green-light);

    font-size: 9px;

    letter-spacing: 1.5px;
}


.sidebar-card strong {

    display: block;

    font-size: 12px;

    margin-bottom: 6px;
}


.sidebar-card p {

    color: var(--text-muted);

    font-size: 10px;

    line-height: 1.5;
}


.system-status {

    display: flex;
    align-items: center;

    gap: 7px;

    margin-top: 14px;

    color: #8ea39a;

    font-size: 10px;
}


.status-dot {

    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #65e66c;

    box-shadow:
        0 0 10px #65e66c;
}


/* =========================================================
   MAIN
   ========================================================= */

.main {

    flex: 1;

    min-width: 0;

    display: flex;
    flex-direction: column;
}


/* =========================================================
   TOPBAR
   ========================================================= */

.topbar {

    min-height: 96px;

    padding:
        20px 34px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-bottom:
        1px solid var(--border);

    background:
        rgba(7, 16, 15, 0.72);

    backdrop-filter:
        blur(15px);
}


.eyebrow {

    display: block;

    margin-bottom: 5px;

    color: var(--manu-green-light);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1.8px;
}


.topbar h2 {

    font-size: 19px;
}


.topbar p {

    margin-top: 4px;

    color: var(--text-muted);

    font-size: 11px;
}


.topbar-actions {

    display: flex;
    align-items: center;

    gap: 16px;
}


.online-status {

    padding:
        7px 11px;

    display: flex;
    align-items: center;

    gap: 7px;

    border:
        1px solid rgba(67, 176, 42, 0.18);

    border-radius: 30px;

    background:
        rgba(67, 176, 42, 0.06);

    color: #a6cfa0;

    font-size: 9px;

    letter-spacing: 1px;
}


.online-status span {

    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: #66e56e;

    box-shadow:
        0 0 10px #66e56e;
}


.top-avatar {

    width: 38px;
    height: 38px;

    border-radius: 11px;
}


/* =========================================================
   DOCUMENTO ATIVO
   ========================================================= */

.document-panel {

    margin:
        18px 34px 0;

    padding:
        12px 15px;

    display: flex;
    align-items: center;

    gap: 13px;

    border:
        1px solid rgba(67, 176, 42, 0.25);

    border-radius: 13px;

    background:
        linear-gradient(
            90deg,
            rgba(67, 176, 42, 0.09),
            rgba(15, 32, 29, 0.65)
        );

    box-shadow:
        0 8px 30px rgba(0, 0, 0, 0.15);
}


.document-icon {

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background:
        rgba(67, 176, 42, 0.14);

    color: var(--manu-green-light);

    font-size: 9px;
    font-weight: 800;
}


.document-details {

    flex: 1;

    display: flex;
    flex-direction: column;

    gap: 2px;
}


.document-label {

    color: var(--manu-green-light);

    font-size: 8px;

    letter-spacing: 1.4px;
}


.document-details strong {

    font-size: 12px;
}


.document-details > span:last-child {

    color: var(--text-muted);

    font-size: 10px;
}


.document-ready {

    display: flex;
    align-items: center;

    gap: 6px;

    color: #9fc79b;

    font-size: 9px;
}


.document-ready span {

    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: var(--manu-green-light);
}


/* =========================================================
   CHAT
   ========================================================= */

.chat {

    flex: 1;

    min-height: 0;

    overflow-y: auto;

    padding:
        28px 34px;

    scroll-behavior: smooth;
}


.chat::-webkit-scrollbar {

    width: 6px;
}


.chat::-webkit-scrollbar-thumb {

    background:
        rgba(67, 176, 42, 0.2);

    border-radius: 20px;
}


/* =========================================================
   WELCOME
   ========================================================= */

.welcome {

    min-height: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;

    padding:
        30px 20px 50px;
}


.welcome-orbit {

    position: relative;

    width: 110px;
    height: 110px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 15px;
}


.manu-avatar {

    position: relative;

    z-index: 3;

    width: 66px;
    height: 66px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 19px;

    background:
        linear-gradient(
            135deg,
            var(--manu-green-light),
            var(--manu-green-dark)
        );

    color: white;

    font-size: 27px;
    font-weight: 800;

    box-shadow:
        0 0 45px rgba(67, 176, 42, 0.28);
}


.orbit {

    position: absolute;

    border:
        1px solid rgba(67, 176, 42, 0.22);

    border-radius: 50%;
}


.orbit-one {

    width: 90px;
    height: 90px;

    animation:
        orbitPulse 3s infinite ease-in-out;
}


.orbit-two {

    width: 108px;
    height: 108px;

    opacity: 0.45;

    animation:
        orbitPulse 3s 1s infinite ease-in-out;
}


@keyframes orbitPulse {

    0%,
    100% {
        transform: scale(0.95);
        opacity: 0.25;
    }

    50% {
        transform: scale(1.05);
        opacity: 0.8;
    }
}


.welcome-label {

    color: var(--manu-green-light);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 2px;
}


.welcome h2 {

    margin-top: 9px;

    font-size: 28px;

    letter-spacing: -0.6px;
}


.welcome > p {

    max-width: 580px;

    margin-top: 10px;

    color: var(--text-soft);

    font-size: 13px;

    line-height: 1.7;
}


.capabilities {

    width: 100%;
    max-width: 680px;

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 10px;

    margin-top: 27px;
}


.capability {

    padding: 15px;

    display: flex;
    flex-direction: column;

    text-align: left;

    border:
        1px solid var(--border);

    border-radius: 13px;

    background:
        rgba(255, 255, 255, 0.022);
}


.capability > span {

    color: var(--manu-green);

    font-size: 9px;

    margin-bottom: 9px;
}


.capability strong {

    font-size: 12px;
}


.capability small {

    margin-top: 4px;

    color: var(--text-muted);

    font-size: 9px;

    line-height: 1.5;
}


.suggestions {

    display: flex;
    flex-wrap: wrap;
    justify-content: center;

    gap: 8px;

    margin-top: 18px;
}


.suggestion {

    padding:
        9px 13px;

    border:
        1px solid var(--border);

    border-radius: 20px;

    background:
        rgba(255, 255, 255, 0.025);

    color: #a9bbb5;

    font-size: 10px;

    cursor: pointer;

    transition: 0.2s;
}


.suggestion:hover {

    color: #dfffd9;

    border-color:
        rgba(67, 176, 42, 0.4);

    background:
        rgba(67, 176, 42, 0.08);
}


/* =========================================================
   MENSAGENS
   ========================================================= */

.message-row {

    max-width: 900px;

    margin:
        0 auto 20px;

    display: flex;

    gap: 11px;
}


.message-row.user-row {

    justify-content: flex-end;
}


.avatar {

    width: 34px;
    height: 34px;

    min-width: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    font-size: 9px;
    font-weight: 800;
}


.bot-avatar {

    background:
        linear-gradient(
            135deg,
            var(--manu-green-light),
            var(--manu-green-dark)
        );

    color: white;

    box-shadow:
        0 0 20px rgba(67, 176, 42, 0.15);
}


.user-avatar {

    order: 2;

    background: #182723;

    color: #9aafa7;

    border:
        1px solid var(--border);
}


.user-row .message-content {

    order: 1;
}


.message-content {

    max-width: 72%;
}


.sender {

    display: block;

    margin-bottom: 5px;

    color: #789087;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 0.6px;
}


.user-row .sender {

    text-align: right;
}


.message {

    padding:
        12px 15px;

    border-radius: 13px;

    font-size: 12px;

    line-height: 1.65;

    white-space: pre-wrap;

    word-break: break-word;
}


.bot-message {

    background:
        rgba(18, 36, 32, 0.88);

    border:
        1px solid var(--border);

    color: #dce8e3;
}


.user-message {

    background:
        linear-gradient(
            135deg,
            rgba(67, 176, 42, 0.88),
            rgba(42, 139, 27, 0.88)
        );

    color: white;
}


.message-time {

    display: block;

    margin-top: 5px;

    color: #52685f;

    font-size: 8px;
}


.user-row .message-time {

    text-align: right;
}


/* =========================================================
   TYPING
   ========================================================= */

.typing-container {

    max-width: 900px;

    width:
        calc(100% - 68px);

    margin:
        0 auto 10px;

    display: flex;
    align-items: center;

    gap: 10px;
}


.typing-avatar {

    width: 31px;
    height: 31px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 9px;

    background:
        var(--manu-green);

    color: white;

    font-size: 10px;
    font-weight: 800;
}


.typing-info {

    display: flex;
    align-items: center;

    gap: 9px;

    color: var(--text-muted);
}


.typing {

    display: flex;

    gap: 3px;
}


.typing span {

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background:
        var(--manu-green-light);

    animation:
        typingAnimation 1.1s infinite;
}


.typing span:nth-child(2) {
    animation-delay: 0.15s;
}


.typing span:nth-child(3) {
    animation-delay: 0.3s;
}


@keyframes typingAnimation {

    0%,
    60%,
    100% {

        transform:
            translateY(0);

        opacity: 0.3;
    }

    30% {

        transform:
            translateY(-4px);

        opacity: 1;
    }
}


/* =========================================================
   INPUT
   ========================================================= */

.input-container {

    padding:
        13px 34px 18px;

    background:
        linear-gradient(
            180deg,
            rgba(7, 16, 15, 0),
            rgba(7, 16, 15, 0.96) 30%
        );
}


.input-shell {

    max-width: 900px;

    margin: 0 auto;

    display: flex;
    align-items: flex-end;

    gap: 9px;

    padding:
        8px;

    border:
        1px solid rgba(67, 176, 42, 0.22);

    border-radius: 16px;

    background:
        rgba(13, 28, 25, 0.94);

    box-shadow:
        0 12px 45px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.025);

    transition: 0.2s;
}


.input-shell:focus-within {

    border-color:
        rgba(67, 176, 42, 0.52);

    box-shadow:
        0 0 0 3px rgba(67, 176, 42, 0.05),
        0 15px 50px rgba(0, 0, 0, 0.25);
}


.attachment-button {

    width: 38px;
    height: 38px;

    min-width: 38px;

    border:
        1px solid var(--border);

    border-radius: 11px;

    background:
        rgba(255, 255, 255, 0.03);

    color: var(--manu-green-light);

    font-size: 20px;

    cursor: pointer;

    transition: 0.2s;
}


.attachment-button:hover {

    background:
        rgba(67, 176, 42, 0.1);

    border-color:
        var(--border-strong);
}


textarea {

    flex: 1;

    min-height: 38px;
    max-height: 130px;

    padding:
        9px 6px;

    resize: none;

    border: none;
    outline: none;

    background: transparent;

    color: var(--text);

    font-family: inherit;

    font-size: 12px;

    line-height: 1.5;
}


textarea::placeholder {

    color: #52675f;
}


.send-button {

    min-width: 96px;
    height: 38px;

    padding:
        0 13px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    border: none;

    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            var(--manu-green-light),
            var(--manu-green-dark)
        );

    color: white;

    font-size: 11px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 5px 20px rgba(67, 176, 42, 0.17);

    transition: 0.2s;
}


.send-button:hover {

    transform:
        translateY(-1px);

    box-shadow:
        0 7px 25px rgba(67, 176, 42, 0.27);
}


.send-button:disabled {

    opacity: 0.45;

    cursor: not-allowed;

    transform: none;
}


.send-icon {

    font-size: 18px;

    line-height: 1;
}


.input-info {

    max-width: 900px;

    margin:
        7px auto 0;

    display: flex;
    justify-content: space-between;

    color: #4e635b;

    font-size: 8px;
}


.secure-info {

    color: #587b5c;
}


/* =========================================================
   UTILIDADES
   ========================================================= */

.hidden {

    display: none !important;
}

/* =========================================================
   BIBLIOTECA DOCUMENTAL
   ========================================================= */

.library-panel {
    margin: 16px 12px;
    padding: 16px;

    border:
        1px solid rgba(61, 220, 85, 0.18);

    border-radius: 20px;

    background:
        linear-gradient(
            145deg,
            rgba(10, 35, 25, 0.88),
            rgba(5, 20, 16, 0.92)
        );

    box-shadow:
        0 14px 35px
        rgba(0, 0, 0, 0.18);
}


.library-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 14px;
}


.library-eyebrow {
    display: block;

    margin-bottom: 4px;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 2px;

    color: #55e969;
}


.library-header h3 {
    margin: 0;

    font-size: 16px;
    color: #f1fff4;
}


.library-header h3 span {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 22px;
    height: 22px;

    margin-left: 6px;

    padding: 0 6px;

    border-radius: 20px;

    font-size: 11px;

    color: #5bef6e;

    background:
        rgba(65, 220, 84, 0.12);

    border:
        1px solid
        rgba(65, 220, 84, 0.2);
}


.library-add {
    width: 36px;
    height: 36px;

    border: 1px solid
        rgba(70, 235, 92, 0.28);

    border-radius: 12px;

    background:
        rgba(60, 220, 80, 0.08);

    color: #62ef73;

    font-size: 22px;

    cursor: pointer;

    transition: 0.2s ease;
}


.library-add:hover {
    transform:
        translateY(-2px);

    background:
        rgba(60, 220, 80, 0.17);

    box-shadow:
        0 8px 22px
        rgba(40, 220, 70, 0.12);
}


.document-library {
    display: flex;
    flex-direction: column;

    gap: 8px;

    max-height: 260px;

    overflow-y: auto;
}


.library-item {
    display: flex;
    align-items: stretch;

    border:
        1px solid
        rgba(255, 255, 255, 0.06);

    border-radius: 14px;

    overflow: hidden;

    background:
        rgba(255, 255, 255, 0.025);

    transition: 0.2s ease;
}


.library-item:hover {
    border-color:
        rgba(74, 230, 94, 0.2);

    background:
        rgba(72, 220, 90, 0.055);
}


.library-item.active {
    border-color:
        rgba(74, 235, 95, 0.42);

    background:
        rgba(64, 215, 82, 0.09);

    box-shadow:
        inset 3px 0 0
        rgba(70, 230, 90, 0.8);
}


.library-select {
    min-width: 0;
    flex: 1;

    display: flex;
    align-items: center;

    gap: 10px;

    padding: 10px;

    border: 0;

    text-align: left;

    background: transparent;

    cursor: pointer;
}


.library-file-icon {
    width: 40px;
    height: 40px;

    min-width: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background:
        rgba(54, 210, 74, 0.11);

    color: #5bec6e;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: 0.5px;
}


.library-file-info {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 4px;
}


.library-file-info strong {
    overflow: hidden;

    color: #eaffed;

    font-size: 12px;

    white-space: nowrap;
    text-overflow: ellipsis;
}


.library-file-info small {
    color: #718c7c;

    font-size: 10px;
}


.library-remove {
    width: 34px;

    border: 0;
    border-left:
        1px solid
        rgba(255, 255, 255, 0.04);

    background: transparent;

    color: #65796d;

    font-size: 18px;

    cursor: pointer;
}


.library-remove:hover {
    color: #ff7b7b;

    background:
        rgba(255, 80, 80, 0.07);
}


.library-empty {
    display: flex;
    flex-direction: column;

    gap: 5px;

    padding: 16px 10px;

    text-align: center;

    border:
        1px dashed
        rgba(100, 220, 115, 0.15);

    border-radius: 13px;
}


.library-empty strong {
    color: #9cb4a4;

    font-size: 12px;
}


.library-empty span {
    color: #587064;

    font-size: 10px;
    line-height: 1.5;
}

/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 900px) {

    .sidebar {

        width: 78px;
        min-width: 78px;

        padding:
            20px 12px;
    }


    .brand {

        justify-content: center;
    }


    .brand-text,
    .menu-label,
    .menu-item span:last-child,
    .sidebar-card,
    .new-chat span:last-child {

        display: none;
    }


    .new-chat {

        padding: 12px;
    }


    .menu-item {

        justify-content: center;
    }


    .topbar {

        padding:
            18px 22px;
    }


    .document-panel {

        margin:
            14px 22px 0;
    }


    .chat {

        padding:
            22px;
    }


    .input-container {

        padding:
            12px 22px 16px;
    }
}


@media (max-width: 650px) {

    .sidebar {

        display: none;
    }


    .topbar {

        min-height: 78px;
    }


    .online-status {

        display: none;
    }


    .capabilities {

        grid-template-columns: 1fr;
    }


    .welcome {

        justify-content: flex-start;

        padding-top: 35px;
    }


    .message-content {

        max-width: 85%;
    }


    .document-ready {

        display: none;
    }


    .input-info {

        justify-content: center;
    }


    .secure-info {

        display: none;
    }
}

/* =========================================================
   MANU - AJUSTE DE LAYOUT CHAT + BASE DOCUMENTAL
   ========================================================= */

/* A conversa continua sendo a área principal */
.chat {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

/* Base documental compacta */
.library-panel {
    flex: 0 0 auto;
    max-height: 230px;
    overflow: hidden;
    margin-top: 14px;
}

/* Somente a lista de arquivos rola */
.document-library {
    max-height: 125px;
    overflow-y: auto;
    padding-right: 5px;
}

/* Arquivos mais compactos */
.library-item {
    min-height: 62px;
}

/* Scroll discreto */
.document-library::-webkit-scrollbar {
    width: 5px;
}

.document-library::-webkit-scrollbar-thumb {
    background: rgba(76, 220, 65, 0.35);
    border-radius: 10px;
}

/* Campo de mensagem não deve ser empurrado */
.input-container {
    flex-shrink: 0;
}

/* =========================================================
   MANU - LAYOUT LIMPO DA TELA CONVERSAR
   ========================================================= */

/* Biblioteca continua no sistema, mas não ocupa o chat */
.library-panel {
    display: none;
}

/* Área principal em coluna */
.main {
    height: 100vh;
    overflow: hidden;
}

/* Chat ocupa todo o espaço disponível */
.chat {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 30px;
}

/* Documento ativo permanece compacto no topo */
.document-panel {
    flex-shrink: 0;
    margin-top: 18px;
    margin-bottom: 8px;
}

/* Campo de digitação sempre disponível */
.input-container {
    flex-shrink: 0;
    position: relative;
    z-index: 20;
}

/* =========================================================
   MANU - CORREÇÃO FINAL DO ESPAÇAMENTO DO CHAT
   ========================================================= */

/* Garante espaço abaixo do documento ativo */
.document-panel {
    position: relative;
    z-index: 5;
    margin-bottom: 24px;
}

/* O conteúdo do chat começa abaixo do painel */
.chat {
    padding-top: 28px;
    scroll-padding-top: 28px;
}

/* Tela inicial não pode subir por baixo do painel */
.welcome {
    margin-top: 12px;
}
/* =========================================================
   MANU - LAYOUT DEFINITIVO DA ÁREA DE CONVERSA
   ========================================================= */

.main {
    height: 100vh;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.document-panel {
    flex: 0 0 auto;
    position: relative;
    z-index: 5;
    margin: 18px 34px 0;
}

.chat {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;

    padding:
        18px 34px 24px;

    scroll-padding-top: 18px;
}

/* A tela inicial passa a ocupar somente o espaço REAL do chat */
.welcome {
    width: 100%;

    min-height: 0;
    height: auto;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    text-align: center;

    padding:
        18px 20px 30px;

    margin: 0;
}

/* Evita que o topo da apresentação fique escondido */
.welcome-orbit {
    flex: 0 0 auto;
    margin-top: 0;
}

/* Campo de mensagem permanece sempre visível */
.input-container {
    flex: 0 0 auto;
    position: relative;
    z-index: 20;
}

/* Biblioteca não ocupa espaço na tela Conversar */
.library-panel {
    display: none;
}


/* =========================================================
   MANU - AJUSTE FINAL DO TOPO DA TELA INICIAL
   ========================================================= */

.welcome {
    padding-top: 18px;
}

.document-panel + .chat .welcome {
    padding-top: 42px;
}

.welcome-orbit {
    position: relative;
    margin-top: 0;
    flex-shrink: 0;
}


/* =========================================================
   MANU - LAYOUT FINAL COM DOCUMENTO ATIVO
   ========================================================= */

/* ?rea principal */
.main {
    height: 100vh;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Documento ativo */
.document-panel {
    flex: 0 0 auto;
    position: relative;
    z-index: 5;
    margin: 18px 34px 0;
}

/* ?rea central */
.chat {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 34px 24px;
}

/* Tela de apresenta??o */
.welcome {
    width: 100%;
    min-height: 0;
    height: auto;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    text-align: center;
    margin: 0;
    padding: 22px 20px 30px;
}

/* Quando existe documento ativo, cria espa?o REAL no topo */
.document-panel:not(.hidden) + .chat .welcome {
    padding-top: 34px;
}

/* Logo central volta a aparecer */
.document-panel:not(.hidden) + .chat .welcome-orbit {
    display: flex;
    position: relative;

    width: 76px;
    height: 76px;

    flex: 0 0 76px;

    margin:
        0
        0
        10px;
}

/* Reduz o avatar somente nesse modo */
.document-panel:not(.hidden) + .chat .manu-avatar {
    width: 48px;
    height: 48px;
    font-size: 19px;
}

/* MANU AI SYSTEM */
.document-panel:not(.hidden) + .chat .welcome-label {
    display: block;
    position: relative;

    margin:
        4px
        0
        0;

    flex: 0 0 auto;
}

/* T?tulo */
.document-panel:not(.hidden) + .chat .welcome h2 {
    margin-top: 8px;
}

/* Campo de mensagem */
.input-container {
    flex: 0 0 auto;
    position: relative;
    z-index: 20;
}

/* Biblioteca permanece fora da tela Conversar */
.library-panel {
    display: none;
}


/* =========================================================
   MANU - CORREÇÃO FINAL TELA COM DOCUMENTO ATIVO
   ========================================================= */

/* Com documento ativo, remove o logo central para ganhar espaço */
.document-panel:not(.hidden) + .chat .welcome-orbit {
    display: none !important;
}

/* Garante espaço entre documento ativo e apresentação */
.document-panel:not(.hidden) + .chat {
    padding-top: 0 !important;
}

.document-panel:not(.hidden) + .chat .welcome {
    padding-top: 32px !important;
    margin-top: 0 !important;
}

/* MANU AI SYSTEM fica totalmente visível */
.document-panel:not(.hidden) + .chat .welcome-label {
    display: block !important;
    position: relative !important;
    top: auto !important;
    transform: none !important;

    margin: 0 0 12px 0 !important;

    line-height: 18px !important;
    flex: 0 0 auto !important;
}

/* Título não invade o label */
.document-panel:not(.hidden) + .chat .welcome h2 {
    margin: 0 0 12px 0 !important;
}

/* Texto */
.document-panel:not(.hidden) + .chat .welcome > p {
    margin-top: 0 !important;
}

/* =========================================================
   MANU - BADGE DOCUMENTO ATIVO
   ========================================================= */

.library-active-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;

    padding: 4px 9px;
    margin-bottom: 5px;

    border: 1px solid rgba(82, 255, 91, 0.35);
    border-radius: 999px;

    background: rgba(82, 255, 91, 0.10);

    color: #52ff5b;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.4px;
    line-height: 1;

    text-transform: uppercase;
}


/* =========================================================
   MANU - DOCUMENTO ATIVO LIMPO
   O destaque do cartão substitui o badge ATIVO
   ========================================================= */

.library-active-badge {
    display: none !important;
}

.library-item.active {
    border-color: rgba(74, 235, 95, 0.65);
    background: rgba(64, 215, 82, 0.10);
    box-shadow:
        inset 4px 0 0 rgba(70, 230, 90, 0.95);
}


/* =========================================================
   MANU - BIBLIOTECA DE ARQUIVOS - LAYOUT FINAL
   ========================================================= */

/* Remove definitivamente o texto ATIVO */
.library-active-badge {
    display: none !important;
}

/* Painel da biblioteca */
.library-panel {
    align-items: flex-start !important;
    gap: 28px !important;
}

/* Área onde ficam os arquivos */
.document-library {
    flex: 1 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

/* Cartões */
.library-item {
    width: 100% !important;
    min-height: 72px !important;
}

/* Conteúdo clicável do cartão */
.library-select {
    padding: 14px 16px !important;
    gap: 14px !important;
}

/* Ícone PDF */
.library-file-icon {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    font-size: 11px !important;
}

/* Informações */
.library-file-info {
    flex: 1 !important;
    min-width: 0 !important;
    gap: 5px !important;
}

/* Nome */
.library-file-info strong {
    font-size: 14px !important;
    line-height: 1.3 !important;
}

/* Metadados */
.library-file-info small {
    font-size: 11px !important;
}

/* Documento selecionado */
.library-item.active {
    border-color: rgba(82, 255, 91, 0.65) !important;
    background: rgba(82, 255, 91, 0.075) !important;

    box-shadow:
        inset 4px 0 0 rgba(82, 255, 91, 0.95) !important;
}

/* Botão remover */
.library-remove {
    width: 46px !important;
    flex: 0 0 46px !important;
}


/* =========================================================
   MANU - STATUS DE LEITURA DOS ARQUIVOS
   ========================================================= */

.library-status {
    display: block;
    margin-top: 2px;

    font-size: 10px;
    font-weight: 500;
    line-height: 1.3;

    color: #718c7c;
}

.library-status.success {
    color: #79a889;
}

.library-status.error {
    color: #d97878;
}

/* Refinamento cirúrgico do status e avatar do header. */
.topbar-actions{gap:10px}.online-status{min-height:34px;box-sizing:border-box;padding:7px 12px;border-color:rgba(103,181,120,.16);background:rgba(43,104,61,.075);box-shadow:none;color:#a9c9b0}.online-status span{width:6px;height:6px;box-shadow:0 0 4px rgba(102,229,110,.35);animation:manuOnlinePulse 3.2s ease-in-out infinite}.top-avatar{width:40px;height:40px;border-radius:50%!important;box-shadow:0 5px 14px rgba(0,0,0,.16)!important}.top-avatar:hover{transform:none!important;box-shadow:0 6px 16px rgba(0,0,0,.2)!important}@keyframes manuOnlinePulse{50%{opacity:.72;transform:scale(.88)}}
@media(max-width:640px){.topbar-actions{gap:7px}.online-status{min-height:32px;padding-inline:9px;font-size:8px}.top-avatar{width:38px;height:38px}.logout-button{padding-inline:8px}}

/* V1.4: fallback compacto e único para o avatar do usuário. */
.top-avatar.is-fallback{display:grid;place-items:center;overflow:hidden;border:1px solid rgba(102,181,121,.25)!important;border-radius:50%!important;background:linear-gradient(145deg,#244a37,#132a22)!important;color:#edf9f0;font-size:12px;font-weight:600;letter-spacing:.035em;box-shadow:0 5px 14px rgba(0,0,0,.18)!important}
.top-avatar.has-photo{overflow:hidden;background:#13261d!important}
.top-avatar>span{display:grid;place-items:center}.top-avatar img{width:100%;height:100%;object-fit:cover}
.user-avatar{background:linear-gradient(145deg,#244a37,#132a22);color:#edf9f0;font-weight:600;letter-spacing:.025em}
@media(prefers-reduced-motion:reduce){.online-status span{animation:none}}

.app .sidebar { transition: width .2s ease, min-width .2s ease, padding .2s ease, opacity .15s ease; }
.app.budget-focus .sidebar { width: 0; min-width: 0; padding-left: 0; padding-right: 0; border-right: 0; overflow: hidden; opacity: 0; visibility: hidden; }
.app.budget-focus .main { width: 100%; }
.budget-context-compact { display: none; }
.app.budget-focus:not(.budget-context-expanded) #contextPanel { display: block; padding: 9px 28px; }
.app.budget-focus:not(.budget-context-expanded) #contextPanel > .context-item { display: none; }
.app.budget-focus:not(.budget-context-expanded) .budget-context-compact { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 34px; }
.budget-context-compact span { overflow: hidden; color: #c8d7cd; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.budget-context-compact button { flex: 0 0 auto; border: 1px solid rgba(91,236,110,.28); border-radius: 7px; padding: 5px 9px; background: transparent; color: #76e588; font-size: 10px; cursor: pointer; }

.conversation-history {
    display: grid;
    min-height: 96px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid rgba(121, 168, 137, 0.18);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.018);
}

.conversation-history-title {
    margin: 0 0 10px 2px;
    color: #718c7c;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.conversation-list {
    display: grid;
    gap: 6px;
    max-height: 246px;
    overflow-y: auto;
    padding-right: 3px;
    scrollbar-width: thin;
    scrollbar-color: rgba(91, 236, 110, 0.4) transparent;
}

.conversation-list::-webkit-scrollbar {
    width: 5px;
}

.conversation-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(91, 236, 110, 0.4);
}

.conversation-item {
    width: 100%;
    border: 1px solid rgba(121, 168, 137, 0.25);
    border-radius: 8px;
    padding: 10px 11px;
    background: rgba(255, 255, 255, 0.025);
    color: #b8cbbb;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    min-height: 52px;
    transition: border-color .15s, background .15s, color .15s;
}

.conversation-item:hover,
.conversation-item:focus-visible,
.conversation-item.active {
    border-color: rgba(91, 236, 110, 0.55);
    background: rgba(91, 236, 110, 0.09);
    color: #eaffed;
    outline: none;
}

.conversation-item.active {
    border-color: rgba(91, 236, 110, 0.82);
    box-shadow: inset 3px 0 0 #5bec6e;
}

.conversation-empty {
    margin: 2px 4px;
    color: #718c7c;
    font-size: 11px;
    line-height: 1.4;
}

#menuUsers[hidden] {
    display: none;
}

.users-panel { flex: 1 1 auto; min-height: 0; overflow-y: auto; margin: 22px 0; padding: 24px; border: 1px solid #243041; border-radius: 14px; background: #111827; }
.users-panel { scrollbar-width: thin; scrollbar-color: #3f6950 #0c1510; }.users-panel::-webkit-scrollbar { width: 9px; }.users-panel::-webkit-scrollbar-track { background: #0c1510; border-radius: 999px; }.users-panel::-webkit-scrollbar-thumb { background: #3f6950; border: 2px solid #0c1510; border-radius: 999px; }.users-panel::-webkit-scrollbar-thumb:hover { background: #5b966c; }
.users-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 18px; }
.users-header h3 { margin: 4px 0; color: #eaffed; }
.users-header p, .users-help { margin: 0; color: #8fa39b; font-size: 13px; }
.users-primary-action { border: 1px solid #58cf6c; border-radius: 8px; padding: 9px 13px; background: #2f9d45; color: #07100a; font-weight: 700; cursor: pointer; white-space: nowrap; }
.users-table-wrap { overflow-x: auto; }
.users-table { width: 100%; border-collapse: collapse; text-align: left; color: #dfffe2; font-size: 13px; }
.users-table th, .users-table td { padding: 12px 10px; border-bottom: 1px solid #243041; vertical-align: middle; }
.users-table th { color: #8fa39b; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.users-table td strong, .users-table td small { display: block; }
.users-table td small { margin-top: 3px; color: #8fa39b; }
.users-empty { color: #8fa39b; text-align: center; }
.users-job-empty { color: #718078; font-size: 12px; font-style: italic; }
.users-row-actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 185px; }
.users-action-button { min-height: 29px; border: 1px solid rgba(91,236,110,.35); border-radius: 6px; padding: 4px 8px; background: rgba(91,236,110,.06); color: #a8ffb3; cursor: pointer; font: inherit; font-size: 12px; line-height: 1; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; }
.users-action-button:hover, .users-action-button:focus-visible { border-color: #5bec6e; background: rgba(91,236,110,.16); color: #effff0; outline: none; }.users-action-button:focus-visible { box-shadow: 0 0 0 2px rgba(91,236,110,.3); }
.users-action-danger { border-color: rgba(255,140,140,.4); background: rgba(255,140,140,.06); color: #ffaaa5; }.users-action-danger:hover, .users-action-danger:focus-visible { border-color: #ffaaa5; background: rgba(255,140,140,.16); color: #ffe2df; box-shadow: 0 0 0 2px rgba(255,140,140,.2); }
.user-status { display: inline-block; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 700; }
.user-status.active { background: rgba(91,236,110,.12); color: #8cff9a; }.user-status.inactive { background: rgba(255,140,140,.12); color: #ffaaa5; }
.users-feedback { margin: 0 0 12px; color: #ffaaa5; font-size: 13px; }
.users-modal { width: min(460px, calc(100vw - 32px)); border: 1px solid rgba(91,236,110,.4); border-radius: 14px; background: #132019; color: #eaffed; padding: 22px; box-shadow: 0 24px 80px rgba(0,0,0,.55); }
.users-modal::backdrop { background: rgba(0,0,0,.65); }.users-modal form { display: grid; gap: 13px; }.users-modal h3 { margin: 0 0 4px; font-size: 17px; }
.users-modal form > label { display: grid; gap: 6px; color: #b8cbbb; font-size: 12px; }.users-modal input:not([type="checkbox"]), .users-modal select { border: 1px solid rgba(121,168,137,.4); border-radius: 8px; padding: 10px; background: #0c1510; color: #eaffed; }
.users-status-control { display: grid !important; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid rgba(91,236,110,.28); border-radius: 9px; background: rgba(91,236,110,.06); cursor: pointer; transition: border-color .15s, background .15s; }
.users-status-control input { position: absolute; opacity: 0; }.users-status-switch { position: relative; width: 42px; height: 23px; border-radius: 999px; background: #2f9d45; box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); transition: background .15s; }.users-status-switch span { position: absolute; top: 3px; left: 22px; width: 17px; height: 17px; border-radius: 50%; background: #effff0; transition: left .15s; }.users-status-content { min-width: 0; display: grid; gap: 1px; }.users-status-content strong { color: #eaffed; font-size: 13px; line-height: 1.2; }.users-status-content span { overflow: hidden; color: #8cff9a; font-size: 12px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }.users-status-control.is-inactive { border-color: rgba(255,140,140,.28); background: rgba(255,140,140,.06); }.users-status-control.is-inactive .users-status-switch { background: #6b3940; }.users-status-control.is-inactive .users-status-switch span { left: 3px; }.users-status-control.is-inactive .users-status-content span { color: #ffaaa5; }.users-status-control:focus-within { outline: 2px solid #5bec6e; outline-offset: 2px; }
.users-modal-error { margin: 0; color: #ffaaa5; font-size: 12px; }.users-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 3px; }
.users-delete-warning { margin: 0; color: #ffcac5; font-size: 13px; line-height: 1.4; }.users-delete-confirm { display: flex !important; align-items: flex-start; gap: 8px; color: #dfffe2 !important; cursor: pointer; }.users-delete-button { background: #9d3f3a !important; border-color: #e57870 !important; color: #fff4f2 !important; }.users-delete-button:disabled { opacity: .45; cursor: not-allowed; }
.users-modal-actions button { border: 1px solid #3d5b47; border-radius: 8px; padding: 8px 13px; background: #173220; color: #dfffe2; cursor: pointer; }.users-modal-actions button[type="submit"] { background: #2f9d45; border-color: #58cf6c; color: #07100a; font-weight: 700; }.users-modal-actions button:disabled { cursor: not-allowed; opacity: .45; }
.users-works-list { display: grid; max-height: 270px; overflow-y: auto; border: 1px solid #294034; border-radius: 8px; }.users-work-option { padding: 10px; color: #dfffe2; border-bottom: 1px solid #243041; font-size: 13px; }.users-work-option:last-child { border-bottom: 0; }

/* Orçamento / SINAPI */
.budget-panel { flex: 1 1 auto; min-height: 0; overflow-y: auto; margin: 22px 0; padding: 24px; border: 1px solid #243041; border-radius: 14px; background: #111827; color: #dfffe2; }
.budget-header, .budget-detail-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }.budget-header h3, .budget-detail-header h4 { margin: 4px 0; color: #eaffed; }.budget-header p, .budget-detail-header p, .budget-feedback { margin: 0; color: #8fa39b; font-size: 13px; }.budget-feedback { margin: 12px 0; min-height: 17px; }.budget-feedback.is-error { color: #ffaaa5; }.budget-feedback.is-success { color: #76e588; }.budget-feedback.is-pending { color: #c1cec6; }
.budget-detail-actions { display: flex; align-items: center; gap: 8px; }
.budget-export { position: relative; }.budget-export-menu { position: absolute; top: calc(100% + 7px); right: 0; z-index: 12; width: 230px; padding: 6px; border: 1px solid #315140; border-radius: 9px; background: #101a14; box-shadow: 0 12px 28px rgba(0,0,0,.32); }.budget-export-menu[hidden] { display: none; }.budget-export-menu button { display: grid; width: 100%; gap: 2px; padding: 10px; border: 0; border-radius: 7px; background: transparent; color: #dfffe2; text-align: left; cursor: pointer; }.budget-export-menu button:hover, .budget-export-menu button:focus-visible { background: rgba(91,236,110,.1); outline: none; }.budget-export-menu small { color: #8fa39b; font-size: 10px; }.budget-export-menu button:disabled { opacity: .55; cursor: wait; }
.budget-terms { margin: 14px 0; border: 1px solid #294034; border-radius: 9px; background: rgba(12,21,16,.72); }.budget-terms summary { padding: 11px 13px; color: #cfe6d3; font-size: 12px; font-weight: 700; cursor: pointer; }.budget-terms form { display: grid; gap: 13px; padding: 4px 13px 13px; }.budget-terms fieldset { margin: 0; padding: 10px; border: 1px solid #263d31; border-radius: 8px; }.budget-terms legend { padding: 0 5px; color: #76e588; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }.budget-terms-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.budget-terms label { display: grid; gap: 5px; min-width: 0; color: #9db0a5; font-size: 10px; }.budget-terms input, .budget-terms textarea { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #395143; border-radius: 7px; padding: 8px; background: #0b1410; color: #e4f4e7; font: inherit; }.budget-terms textarea { min-height: 62px; resize: vertical; }.budget-terms input:disabled, .budget-terms textarea:disabled { opacity: .75; cursor: default; }.budget-terms-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }.budget-terms-actions p { margin: 0; color: #8fa39b; font-size: 11px; }.budget-terms-actions p.is-error { color: #ffaaa5; }.budget-terms-actions p.is-success { color: #76e588; }
@media (max-width: 800px) { .budget-terms-grid { grid-template-columns: 1fr; } }
.budget-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin: 18px 0; }.budget-card { display: grid; gap: 5px; border: 1px solid #294034; border-radius: 10px; padding: 13px; background: #0c1510; color: #dfffe2; text-align: left; cursor: pointer; }.budget-card span, .budget-card small { color: #8fa39b; font-size: 12px; }.budget-card.active, .budget-card:hover, .budget-card:focus-visible { border-color: #5bec6e; background: rgba(91,236,110,.08); outline: none; }.budget-empty { color: #8fa39b; text-align: center; padding: 18px; }
.budget-detail { margin-top: 20px; border-top: 1px solid #294034; padding-top: 20px; }.budget-summary { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin: 16px 0 8px; }.budget-summary article { display: grid; gap: 4px; padding: 14px; border: 1px solid rgba(91,236,110,.2); border-radius: 9px; background: rgba(91,236,110,.05); }.budget-summary span { color: #8fa39b; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }.budget-summary strong { color: #eaffed; font-size: 18px; }.budget-summary small { font-size: 11px; }
.budget-coverage { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }.budget-coverage span { padding: 5px 9px; border-radius: 999px; background: #17231c; color: #a9bbb0; font-size: 11px; }.budget-coverage strong { color: #eaffed; }
.budget-comparisons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 12px; }.budget-comparisons span { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid #294034; border-radius: 8px; background: #0c1510; font-size: 11px; }.budget-comparisons strong { color: #a9bbb0; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.deviation-favorable { color: #76e588 !important; }.deviation-alert { color: #ff9c91 !important; }.deviation-neutral { color: #9aaba1 !important; }.deviation-badge { display: grid; gap: 3px; min-width: 135px; font-weight: 600; }.deviation-badge small { color: inherit; }
.budget-search { display: grid; grid-template-columns: minmax(220px, 1fr) 170px 190px; gap: 9px; align-items: end; margin: 18px 0 10px; }.budget-search label { display: grid; gap: 5px; color: #b8cbbb; font-size: 12px; }.budget-search input, .budget-search select, .budget-table input { min-width: 0; border: 1px solid #3d5b47; border-radius: 7px; padding: 8px; background: #0c1510; color: #eaffed; font: inherit; }
.budget-add-panel { margin: 16px 0; padding: 13px; border: 1px solid #315140; border-radius: 9px; background: #0d1711; }.budget-add-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.budget-add-header strong { color: #dfffe2; font-size: 12px; }.budget-add-header button { border: 0; background: transparent; color: #8fa39b; font-size: 11px; cursor: pointer; }
.sinapi-results { display: grid; gap: 7px; max-height: 250px; overflow-y: auto; margin-bottom: 16px; }.sinapi-results > p { margin: 0; color: #8fa39b; font-size: 12px; }.sinapi-result { display: grid; grid-template-columns: minmax(0,1fr) 90px auto; align-items: center; gap: 9px; padding: 10px; border: 1px solid #294034; border-radius: 8px; background: #0c1510; font-size: 12px; }.sinapi-result small, .budget-table small { display: block; margin-top: 3px; color: #8fa39b; }
.budget-panel, .budget-table-wrap, .sinapi-results { scrollbar-width: thin; scrollbar-color: #345044 transparent; }.budget-panel::-webkit-scrollbar, .budget-table-wrap::-webkit-scrollbar, .sinapi-results::-webkit-scrollbar { width: 8px; height: 8px; }.budget-panel::-webkit-scrollbar-track, .budget-table-wrap::-webkit-scrollbar-track, .sinapi-results::-webkit-scrollbar-track { background: transparent; }.budget-panel::-webkit-scrollbar-thumb, .budget-table-wrap::-webkit-scrollbar-thumb, .sinapi-results::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: #345044; background-clip: padding-box; }.budget-panel::-webkit-scrollbar-thumb:hover, .budget-table-wrap::-webkit-scrollbar-thumb:hover, .sinapi-results::-webkit-scrollbar-thumb:hover { background: #4b735e; background-clip: padding-box; }
.budget-table-wrap { overflow: auto; max-height: 460px; border: 1px solid #243041; border-radius: 9px; }.budget-table { min-width: 1060px; width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 12px; }.budget-table th, .budget-table td { padding: 9px 8px; border-bottom: 1px solid #243041; text-align: left; vertical-align: top; }.budget-table th { position: sticky; top: 0; z-index: 1; background: #132019; color: #8fa39b; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }.budget-table input { width: 78px; padding: 6px; }.budget-table th:nth-child(1) { width: 23%; }.budget-table th:nth-child(2) { width: 7%; }.budget-table th:nth-child(3) { width: 15%; }.budget-table th:nth-child(4), .budget-table th:nth-child(5), .budget-table th:nth-child(6) { width: 9%; }.budget-table th:nth-child(7) { width: 12%; }.budget-table th:nth-child(8) { width: 10%; }.budget-table th:nth-child(9) { width: 6%; }.budget-table td:first-child { min-width: 280px; overflow-wrap: anywhere; }.budget-table td:first-child > span { display: block; margin-top: 3px; }.budget-table td:nth-child(2) input { width: 100%; min-width: 52px; }.budget-table td:nth-child(8) input { width: 100%; min-width: 80px; }.budget-unit-prices { display: grid; gap: 4px; min-width: 0; }.budget-price-row { display: grid !important; grid-template-columns: 38px minmax(86px, 1fr); align-items: center; gap: 5px; min-width: 0; color: #8fa39b; font-size: 10px; }.budget-price-row strong { overflow: hidden; color: #c9d7ce; font-size: 11px; font-weight: 500; text-align: right; text-overflow: ellipsis; white-space: nowrap; }.budget-unit-prices input { width: 100%; min-width: 0; }.budget-row-actions { white-space: nowrap; }.budget-row-actions .users-action-button { display: block; width: 100%; margin-bottom: 5px; padding: 6px 7px; font-size: 10px; }.budget-row-actions .users-action-button.is-dirty { border-color: #76e588; color: #dfffe2; }.budget-row-error { display: block; max-width: 120px; margin-top: 5px; color: #ffaaa5 !important; font-size: 10px; line-height: 1.3; white-space: normal; }
.budget-deviations { margin-top: 22px; }.budget-deviations h5 { margin: 4px 0 12px; font-size: 16px; }.budget-deviations > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }.budget-deviations article { padding: 12px; border: 1px solid #294034; border-radius: 9px; background: #0c1510; }.budget-deviations h6 { margin: 0 0 9px; color: #dfffe2; font-size: 12px; }.budget-deviations article > div { display: grid; gap: 4px; padding: 7px 0; border-top: 1px solid #203329; }.budget-deviations article > div span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.budget-deviations article > div small { font-size: 11px; }.budget-deviations p { color: #8fa39b; font-size: 11px; }
.budget-ai { display: grid; gap: 13px; margin-top: 22px; padding: 16px; border: 1px solid rgba(91,236,110,.23); border-radius: 10px; background: rgba(12,21,16,.72); }.budget-ai h5 { margin: 4px 0; font-size: 16px; }.budget-ai > div > p { color: #8fa39b; font-size: 12px; }.budget-ai form { display: grid; gap: 6px; }.budget-ai form label { color: #b8cbbb; font-size: 11px; }.budget-ai form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }.budget-ai input { min-width: 0; border: 1px solid #3d5b47; border-radius: 8px; padding: 10px; background: #0c1510; color: #eaffed; }.budget-ai button { border: 1px solid #58cf6c; border-radius: 8px; padding: 9px 15px; background: #2f9d45; color: #07100a; font-weight: 700; cursor: pointer; }.budget-ai button:disabled { opacity: .55; cursor: wait; }.budget-ai-feedback { color: #c1cec6; font-size: 12px; }.budget-ai-feedback.is-error { color: #ffaaa5; }.budget-ai-answer { padding: 14px; border-left: 3px solid #4b735e; border-radius: 6px; background: #111a15; }.budget-ai-answer h6 { margin-bottom: 8px; color: #76e588; font-size: 12px; }.budget-ai-answer > p { color: #dfffe2; font-size: 13px; line-height: 1.55; white-space: pre-wrap; }.budget-ai-evidence { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }.budget-ai-evidence span { padding: 5px 8px; border-radius: 999px; background: #1a2a20; color: #a9bbb0; font-size: 10px; }
@media (max-width: 800px) { .budget-panel { margin: 12px 0; padding: 16px; }.budget-header, .budget-detail-header { align-items: stretch; flex-direction: column; }.budget-detail-actions { justify-content: space-between; }.budget-summary, .budget-comparisons, .budget-deviations > div:last-child { grid-template-columns: 1fr; }.budget-search, .budget-ai form > div { grid-template-columns: 1fr; }.sinapi-result { grid-template-columns: 1fr 90px auto; }.budget-table { min-width: 1040px; } }

.budget-type-picker { display: grid; gap: 9px; margin: 0; padding: 0; border: 0; }.budget-type-picker legend { margin-bottom: 9px; color: #dfffe2; font-weight: 700; }.budget-type-picker label { display: flex; gap: 10px; padding: 11px; border: 1px solid #315140; border-radius: 9px; cursor: pointer; }.budget-type-picker label:has(input:checked) { border-color: #5bec6e; background: rgba(91,236,110,.08); }.budget-type-picker input { width: auto; }.budget-type-picker span { display: grid; gap: 3px; }.budget-type-picker small { color: #8fa39b; font-weight: 400; }.budget-create-modal #budgetSinapiFields { display: grid; gap: 12px; }.budget-create-modal #budgetSinapiFields[hidden] { display: none; }
.budget-simple-form { display: grid; grid-template-columns: minmax(220px,2fr) 100px 130px 150px; gap: 10px; align-items: end; margin-top: 12px; }.budget-simple-form label { display: grid; gap: 5px; color: #aabbb2; font-size: 11px; }.budget-simple-form input, .budget-simple-form select { min-width: 0; width: 100%; }.budget-simple-form .budget-simple-notes { grid-column: 1 / 4; }.budget-simple-form .budget-row-error { grid-column: 1 / -1; }.budget-table.is-simple { min-width: 760px; }.budget-table.is-simple th:nth-child(1) { width: 30%; }.budget-table.is-simple th:nth-child(2) { width: 8%; }.budget-table.is-simple th:nth-child(3) { width: 12%; }.budget-table.is-simple th:nth-child(4) { width: 15%; }.budget-table.is-simple th:nth-child(5) { width: 15%; text-align: right; }.budget-table.is-simple th:nth-child(6) { width: 12%; }.budget-table.is-simple th:nth-child(7) { width: 8%; }.budget-table.is-simple td { min-width: 0; overflow: hidden; }.budget-table.is-simple td:first-child { min-width: 0; }.budget-table.is-simple td:first-child input, .budget-table.is-simple td:nth-child(2) input, .budget-table.is-simple td:nth-child(3) input, .budget-table.is-simple td:nth-child(3) select, .budget-table.is-simple td:nth-child(4) input, .budget-table.is-simple td:nth-child(6) input { width: 100%; min-width: 0; box-sizing: border-box; }.budget-table.is-simple td:nth-child(3) { display: grid; gap: 5px; }.budget-simple-total { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }.budget-simple-total strong { display: block; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 800px) { .budget-simple-form { grid-template-columns: 1fr 1fr; }.budget-simple-form .budget-simple-notes { grid-column: 1 / -1; }.budget-table.is-simple { min-width: 720px; } }


.library-clear-active {
    border: 1px solid rgba(148, 180, 157, 0.35);
    border-radius: 9px;
    padding: 8px 10px;
    background: transparent;
    color: #b8cbbb;
    font-size: 11px;
    cursor: pointer;
}


.library-clear-active:hover,
.library-clear-active:focus-visible {
    border-color: #62ef73;
    color: #eaffed;
    outline: none;
}


.library-clear-active:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.context-action { margin-left: 6px; border: 0; background: transparent; color: #5bec6e; cursor: pointer; font-size: 11px; }
.context-modal { width: min(360px, calc(100vw - 32px)); border: 1px solid rgba(91,236,110,.35); border-radius: 14px; background: #132019; color: #eaffed; padding: 20px; }
.context-modal::backdrop { background: rgba(0,0,0,.55); }
.context-modal form { display: grid; gap: 12px; }
.context-modal label { display: grid; gap: 5px; font-size: 12px; color: #b8cbbb; }
.context-modal input { border: 1px solid rgba(121,168,137,.4); border-radius: 8px; padding: 9px; background: #0c1510; color: #eaffed; }
.context-modal-actions { display: flex; justify-content: flex-end; gap: 8px; }
.context-modal-actions button { border: 0; border-radius: 8px; padding: 8px 12px; cursor: pointer; }

/* Padrão global de rolagem MANU */
html { scrollbar-width: thin; scrollbar-color: #3f6950 transparent; }
* { scrollbar-width: thin; scrollbar-color: #3f6950 transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: #3f6950; background-clip: padding-box; }
*::-webkit-scrollbar-thumb:hover { background: #5b966c; background-clip: padding-box; }
*::-webkit-scrollbar-corner { background: transparent; }

.main, .sidebar { min-height: 0; }
.library-panel { display: flex; flex: 1 1 auto; min-height: 0; max-height: none; flex-direction: column; overflow: hidden; }
.document-library { flex: 1 1 auto; min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #365c47 transparent; }
.document-library::-webkit-scrollbar { width: 7px; }
.document-library::-webkit-scrollbar-track { background: transparent; }
.document-library::-webkit-scrollbar-thumb { border-radius: 999px; background: #365c47; }
.document-library::-webkit-scrollbar-thumb:hover { background: #4b755d; }
.chat, .users-panel, .budget-panel, .document-library, .conversation-list { overflow-x: hidden; overscroll-behavior: contain; }
dialog { max-height: calc(100dvh - 32px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }

.budget-create-identification { border: 1px solid #294034; border-radius: 9px; padding: 9px 11px; background: rgba(12,21,16,.62); }
.budget-create-identification summary { color: #b8cbbb; font-size: 12px; font-weight: 700; cursor: pointer; }
.budget-create-identification[open] { display: grid; gap: 10px; }
.budget-create-identification label { display: grid; gap: 6px; color: #b8cbbb; font-size: 12px; }
.budget-supplier-summary { margin: 10px 0 0; padding: 8px 11px; border-left: 3px solid #4b735e; border-radius: 6px; background: rgba(91,236,110,.055); color: #cfe6d3; font-size: 11px; }

/* =========================================================
   MANU - BOTÃO ABRIR ARQUIVO
   ========================================================= */

.library-open {
    flex: 0 0 auto;

    padding: 0 14px;

    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.04);

    background: transparent;

    color: #78d987;

    font-size: 11px;
    font-weight: 700;

    cursor: pointer;

    transition: 0.2s ease;
}

.library-open:hover {
    background: rgba(82, 255, 91, 0.08);
    color: #52ff5b;
}

.library-open:focus-visible {
    outline: 1px solid rgba(82, 255, 91, 0.55);
    outline-offset: -2px;
}

/* =========================================================
   MANU - BOTÃO BAIXAR ARQUIVO
   ========================================================= */

.library-download {
    flex: 0 0 auto;

    padding: 0 14px;

    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.04);

    background: transparent;

    color: #78d987;

    font-size: 11px;
    font-weight: 700;

    cursor: pointer;

    transition: 0.2s ease;
}

.library-download:hover {
    background: rgba(82, 255, 91, 0.08);
    color: #52ff5b;
}

.library-download:focus-visible {
    outline: 1px solid rgba(82, 255, 91, 0.55);
    outline-offset: -2px;
}

/* Presença visual da MANU no compositor */
.main{min-height:0}.main>.chat{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto}.input-container{flex:0 0 auto;min-height:0}.manu-composer{position:relative;width:min(1010px,100%);margin:0 auto;display:grid;grid-template-columns:84px minmax(0,1fr);grid-template-areas:". preview" "avatar shell" ". info";column-gap:6px;row-gap:0;align-items:end}.manu-composer-main{display:contents}.manu-composer .input-shell{grid-area:shell;max-width:none;margin:0}.manu-composer .input-info{grid-area:info;max-width:none}.chat-attachment-preview{grid-area:preview;display:flex;gap:7px;overflow-x:auto;padding:0 2px 7px;scrollbar-width:thin;scrollbar-color:#3f6950 transparent}.chat-attachment-preview[hidden]{display:none}.chat-attachment-card{position:relative;flex:0 0 72px;height:54px;border:1px solid rgba(91,236,110,.28);border-radius:9px;overflow:hidden;background:#0c1510}.chat-attachment-card img{width:100%;height:100%;object-fit:cover}.chat-attachment-card button{position:absolute;top:3px;right:3px;width:20px;height:20px;border:0;border-radius:50%;background:rgba(5,12,9,.82);color:#fff;cursor:pointer}.chat-attachment-card.is-uploading{opacity:.55}.manu-composer .manu-avatar{position:relative;z-index:1;grid-area:avatar;align-self:end;width:84px;height:56px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none;isolation:isolate}.manu-composer .manu-avatar img{position:absolute;left:0;bottom:0;display:block;width:84px;height:110px;object-fit:cover;object-position:center 18%;border:0;border-radius:0;background:transparent;box-shadow:0 8px 16px rgba(0,0,0,.12);animation:manuAvatarIdle 5.2s ease-in-out infinite;transition:filter .25s ease,opacity .25s ease}.manu-composer .manu-avatar-status{position:absolute;z-index:2;right:5px;bottom:4px;width:8px;height:8px;border:1px solid #102018;border-radius:50%;background:#57e66b}.manu-composer .manu-avatar--thinking{box-shadow:none}.manu-composer .manu-avatar--thinking img{filter:brightness(1.06) drop-shadow(0 0 5px rgba(91,236,110,.32));animation:manuAvatarThinking 3.8s ease-in-out infinite}.manu-composer .manu-avatar--thinking .manu-avatar-status{animation:manuAvatarPulse 1.2s ease-in-out infinite}.manu-composer .manu-avatar--responding img{filter:brightness(1.04)}@keyframes manuAvatarIdle{0%,100%{transform:translateY(0);opacity:.98}50%{transform:translateY(-2px);opacity:1}}@keyframes manuAvatarThinking{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes manuAvatarPulse{50%{transform:scale(1.25);box-shadow:0 0 7px rgba(91,236,110,.65)}}.typing-container{box-sizing:border-box;padding-left:90px}.typing-container small{font-weight:600;letter-spacing:.01em}

@media(max-width:900px){.brand-avatar{width:48px;height:48px;flex-basis:48px;border-radius:14px}.manu-composer{grid-template-columns:66px minmax(0,1fr);column-gap:6px}.manu-composer .manu-avatar{width:66px;height:56px}.manu-composer .manu-avatar img{width:66px;height:87px}.typing-container{padding-left:72px}}
@media(max-width:650px){.manu-composer{grid-template-columns:42px minmax(0,1fr);column-gap:3px}.manu-composer .manu-avatar{width:42px;height:54px}.manu-composer .manu-avatar img{width:42px;height:56px;bottom:0}.manu-composer .manu-avatar-status{right:1px;bottom:3px;width:7px;height:7px}.typing-container{padding-left:45px}}
@media(max-width:420px){.input-container{padding-left:12px;padding-right:12px}.manu-composer{grid-template-columns:38px minmax(0,1fr)}.manu-composer .manu-avatar{width:38px;height:52px}.manu-composer .manu-avatar img{width:38px;height:51px}.typing-container{padding-left:41px}.input-shell{gap:5px}.attachment-button{width:34px;height:34px;min-width:34px}.send-button{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){.manu-composer .manu-avatar img,.manu-composer .manu-avatar-status{animation:none!important;transition:none!important}.typing span{animation:none!important}}
.chat-download-button{margin-left:48px;border:1px solid rgba(91,236,110,.42);border-radius:9px;padding:8px 13px;background:rgba(47,157,69,.18);color:#bfffc7;font-weight:700;cursor:pointer}.chat-download-button:hover{background:rgba(47,157,69,.3)}.chat-download-button:disabled{opacity:.55;cursor:wait}

/* Attachments persistidos pertencem à mensagem, nunca ao compositor. */
.message-attachments{display:grid;grid-template-columns:repeat(2,minmax(0,120px));gap:6px;width:min(246px,100%);margin:4px 0 7px}.message-attachments--1{grid-template-columns:minmax(0,220px);width:min(220px,100%)}.message-attachment{min-width:0;padding:0;overflow:hidden;border:1px solid rgba(91,236,110,.25);border-radius:10px;background:#101b15;color:#d8e9dd;text-align:left;cursor:pointer}.message-attachment img{display:block;width:100%;height:82px;object-fit:cover}.message-attachments--1 .message-attachment img{height:132px}.message-attachment span{display:block;overflow:hidden;padding:5px 7px;font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.message-attachment:hover{border-color:rgba(91,236,110,.55)}.message-attachment.is-unavailable{padding:9px;opacity:.72;cursor:default}.message-attachment.is-unavailable span{white-space:normal}.message-attachment:focus-visible{outline:2px solid #5bec6e;outline-offset:2px}
@media(max-width:520px){.message-attachments{grid-template-columns:repeat(2,minmax(0,96px));width:min(198px,100%)}.message-attachments--1{grid-template-columns:minmax(0,180px);width:min(180px,100%)}.message-attachment img{height:68px}.message-attachments--1 .message-attachment img{height:108px}}

/* MANU Experience V1 — profundidade técnica, identidade e perfil */
body{background:#07100d;background-image:radial-gradient(circle at 78% 8%,rgba(55,157,77,.09),transparent 34%),linear-gradient(145deg,#07100d 0%,#0a1210 52%,#080e0c 100%)}
.tech-background{background:radial-gradient(ellipse at 18% 12%,rgba(67,176,89,.055),transparent 42%);pointer-events:none}.tech-grid{opacity:.16;background-image:linear-gradient(rgba(109,145,120,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(109,145,120,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 85%);pointer-events:none}
.sidebar,.topbar,.context-panel,.input-shell,.users-panel,.budget-panel,.agenda-panel,.media-panel,.library-panel{border-color:rgba(123,171,139,.19);box-shadow:0 14px 38px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.018)}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(91,236,110,.78);outline-offset:2px}
.topbar-actions{position:relative}.top-avatar{padding:0;cursor:pointer}.top-avatar span,.top-avatar img{display:block;width:100%;height:100%;border-radius:inherit}.top-avatar img{object-fit:cover}.profile-menu{position:absolute;z-index:80;top:calc(100% + 10px);right:46px;display:grid;width:210px;gap:7px;padding:12px;border:1px solid rgba(91,236,110,.28);border-radius:12px;background:rgba(11,22,16,.97);box-shadow:0 18px 44px rgba(0,0,0,.42)}.profile-menu[hidden]{display:none}.profile-menu strong{overflow:hidden;color:#eaffed;font-size:12px;text-overflow:ellipsis}.profile-menu button{border:1px solid rgba(111,153,123,.32);border-radius:8px;padding:8px;background:#112019;color:#cce5d1;text-align:left;cursor:pointer}.profile-menu button:hover{border-color:#5bec6e;background:rgba(91,236,110,.1)}.profile-menu small{min-height:14px;color:#8fa39b;font-size:10px}
.user-avatar{overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.manu-composer{grid-template-columns:90px minmax(0,1fr);column-gap:5px}.manu-composer .manu-avatar{width:90px}.manu-composer .manu-avatar img{width:90px;height:118px}.manu-composer .manu-avatar::before{content:"M";position:absolute;z-index:3;right:15px;bottom:31px;color:#58df6e;font:700 10px/1 Georgia,serif;text-shadow:0 1px 1px #07100d;transform:rotate(-1deg);pointer-events:none}.manu-composer .manu-avatar--responding img{animation:manuAvatarRespond .85s ease-out}.manu-composer .manu-avatar--success img{animation:manuAvatarSuccess .75s ease-out;filter:brightness(1.07)}.manu-composer .manu-avatar--attention img{animation:manuAvatarAttention 2.4s ease-in-out infinite;filter:brightness(1.035)}.manu-composer .manu-avatar--attention .manu-avatar-status{background:#b8d96c}.manu-composer .manu-avatar--success .manu-avatar-status{background:#78f08b;box-shadow:0 0 7px rgba(91,236,110,.5)}
@keyframes manuAvatarRespond{0%{transform:translateY(-2px) scale(.995)}45%{transform:translateY(-4px) scale(1.006)}100%{transform:translateY(0)}}@keyframes manuAvatarSuccess{45%{transform:translateY(-3px) rotate(.45deg)}}@keyframes manuAvatarAttention{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) translateX(1px)}}
@media(max-width:900px){.manu-composer{grid-template-columns:72px minmax(0,1fr)}.manu-composer .manu-avatar{width:72px}.manu-composer .manu-avatar img{width:72px;height:95px}.manu-composer .manu-avatar::before{right:12px;bottom:27px;font-size:8px}}
@media(max-width:650px){.manu-composer{grid-template-columns:44px minmax(0,1fr)}.manu-composer .manu-avatar{width:44px}.manu-composer .manu-avatar img{width:44px;height:58px}.manu-composer .manu-avatar::before{right:7px;bottom:20px;font-size:6px}.profile-menu{position:fixed;top:66px;right:12px;width:min(240px,calc(100vw - 24px))}}
@media(max-width:420px){.manu-composer{grid-template-columns:42px minmax(0,1fr)}.manu-composer .manu-avatar{width:42px}.manu-composer .manu-avatar img{width:42px;height:55px}}
@media(prefers-reduced-motion:reduce){.manu-composer .manu-avatar--responding img,.manu-composer .manu-avatar--success img,.manu-composer .manu-avatar--attention img{animation:none!important}}

/* Experience V1.2.1: composição pré-V1.2 preservada, somente acabamento cirúrgico. */
.manu-composer .manu-avatar::before{content:none!important}
.manu-composer .input-shell{border-radius:20px;border-color:rgba(91,236,110,.26);box-shadow:0 12px 36px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.025)}
.manu-composer .input-shell:focus-within{border-color:rgba(91,236,110,.52);box-shadow:0 0 0 3px rgba(91,236,110,.05),0 15px 42px rgba(0,0,0,.24)}
.manu-composer .attachment-button{border-radius:12px;background:rgba(91,236,110,.065)}
.manu-composer .send-button{border-radius:14px}
:root{--manu-border-soft:rgba(120,166,136,.12);--manu-text:#e5eee8;--manu-muted:#82978d}
.topbar-actions{position:relative}.top-avatar{border:1px solid rgba(111,174,130,.26);border-radius:13px;background:linear-gradient(145deg,rgba(91,236,110,.2),rgba(26,73,44,.32));box-shadow:0 8px 20px rgba(0,0,0,.18);transition:transform .16s,border-color .16s,box-shadow .16s}.top-avatar:hover{transform:translateY(-1px);border-color:rgba(91,236,110,.52);box-shadow:0 10px 25px rgba(0,0,0,.24)}.profile-menu{position:absolute;z-index:80;top:calc(100% + 12px);right:42px;display:grid;width:286px;gap:0;padding:16px;border:1px solid rgba(118,169,136,.24);border-radius:20px;background:linear-gradient(145deg,rgba(16,33,27,.985),rgba(9,22,19,.99));box-shadow:0 26px 70px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(12px)}.profile-menu[hidden]{display:none}.profile-menu-head{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--manu-border-soft)}.profile-menu-avatar{display:grid;width:64px;height:64px;place-items:center;overflow:hidden;border:1px solid rgba(91,236,110,.3);border-radius:18px;background:linear-gradient(145deg,#3aad50,#1b6536);color:#fff;font-size:18px;font-weight:700;box-shadow:0 9px 24px rgba(0,0,0,.24)}.profile-menu-avatar img{width:100%;height:100%;object-fit:cover}.profile-menu-head>span:last-child{display:grid;gap:4px;min-width:0}.profile-menu strong{overflow:hidden;color:var(--manu-text);font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.profile-menu-head small{color:var(--manu-muted);font-size:10px}.profile-menu-actions{display:grid;gap:7px;padding:14px 0}.profile-menu button{min-height:38px;border-radius:11px;padding:9px 12px;font:inherit;font-size:11px;font-weight:650;text-align:center;cursor:pointer;transition:background .16s,border-color .16s,color .16s,transform .16s}.profile-menu button:hover{transform:translateY(-1px)}.profile-menu .profile-primary{border:1px solid rgba(91,236,110,.42);background:linear-gradient(135deg,rgba(53,171,72,.9),rgba(37,132,60,.94));color:#f5fff6}.profile-menu .profile-primary:hover{border-color:rgba(124,247,140,.7);background:linear-gradient(135deg,#3bb651,#298e42)}.profile-menu .profile-remove{border:1px solid rgba(216,133,128,.2);background:rgba(216,133,128,.045);color:#dca5a1}.profile-menu .profile-remove:hover{border-color:rgba(216,133,128,.42);background:rgba(216,133,128,.09)}.profile-menu p{margin:0;padding-top:11px;border-top:1px solid var(--manu-border-soft);color:#71877d;font-size:9px;text-align:center}.profile-feedback{display:block;min-height:15px;margin-top:7px;color:#9fc0aa;font-size:10px;text-align:center}.profile-menu.is-loading button{pointer-events:none;opacity:.55}.profile-menu.is-loading .profile-feedback::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border:1px solid rgba(91,236,110,.25);border-top-color:#69df79;border-radius:50%;animation:profileSpin .75s linear infinite}@keyframes profileSpin{to{transform:rotate(360deg)}}
@media(max-width:650px){.profile-menu{position:fixed;top:auto;right:10px;bottom:12px;left:10px;width:auto;max-width:none;border-radius:20px}}
@media(prefers-reduced-motion:reduce){.profile-menu.is-loading .profile-feedback::before{animation:none}.top-avatar,.profile-menu button{transition:none}.top-avatar:hover,.profile-menu button:hover{transform:none}}

/* Tech UX controlada: apenas o grupo de status/perfil do header. */
.topbar-actions{gap:10px}.online-status{min-height:34px;box-sizing:border-box;padding:7px 12px;border-color:rgba(103,181,120,.16);background:rgba(43,104,61,.075);box-shadow:none;color:#a9c9b0}.online-status span{width:6px;height:6px;box-shadow:0 0 4px rgba(102,229,110,.35);animation:manuOnlinePulse 3.2s ease-in-out infinite}.top-avatar{width:40px;height:40px;border-radius:50%!important;box-shadow:0 5px 14px rgba(0,0,0,.16)!important}.top-avatar:hover{transform:none!important;box-shadow:0 6px 16px rgba(0,0,0,.2)!important}
@media(max-width:640px){.topbar-actions{gap:7px}.online-status{min-height:32px;padding-inline:9px;font-size:8px}.top-avatar{width:38px;height:38px}.logout-button{padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.online-status span{animation:none}}
.manu-composer textarea:focus-visible{outline:none}

/* UX Polish V1: avatar de sessão e feedback visual de voz. */
.top-avatar{position:relative;isolation:isolate;overflow:visible!important;border:1px solid rgba(117,169,137,.4)!important;background:#13251e!important;box-shadow:0 5px 14px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.045)!important}.top-avatar>span{overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#23483a,#122a23);color:#edf7f0;font-size:12px;font-weight:750;line-height:1;letter-spacing:.055em;text-shadow:0 1px 2px rgba(0,0,0,.28)}.top-avatar.has-photo>span{background:#13251e}.top-avatar::after{content:"";position:absolute;z-index:3;right:-1px;bottom:1px;width:9px;height:9px;box-sizing:border-box;border:2px solid #12221b;border-radius:50%;background:#60d879;box-shadow:0 0 0 1px rgba(96,216,121,.18)}.top-avatar:hover{border-color:rgba(127,199,149,.58)!important;box-shadow:0 7px 17px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.06)!important}.top-avatar img{border-radius:50%;object-fit:cover}
.voice-button{position:relative;display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:1px solid rgba(91,236,110,.2);border-radius:12px;background:rgba(91,236,110,.055);color:#acdcb5;cursor:pointer;transition:border-color .18s,background .18s,color .18s,box-shadow .18s}.voice-button:hover{border-color:rgba(91,236,110,.5);background:rgba(91,236,110,.12);color:#e4ffe8}.voice-button-icon{display:grid;width:18px;height:18px;place-items:center}.voice-icon-mic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.voice-icon-stop{display:none;width:9px;height:9px;border-radius:2px;background:currentColor}.voice-button.is-listening{border-color:rgba(212,116,99,.62);background:rgba(145,59,48,.19);color:#f0b1a5;animation:voiceListening 1.45s ease-in-out infinite}.voice-button.is-listening .voice-icon-mic{display:none}.voice-button.is-listening .voice-icon-stop{display:block}.voice-button.is-processing{cursor:wait;color:#a9d8b3;opacity:.78}.voice-button.is-processing .voice-icon-mic{animation:voiceProcessing 1.15s ease-in-out infinite}.voice-button[data-state="error"]{border-color:rgba(218,125,108,.5);color:#edaa9e}.voice-button[data-state="ready"]{border-color:rgba(104,207,126,.52);color:#bdf3c7}
.voice-feedback{display:flex;min-width:0;align-items:center;gap:7px;color:#9db3a5;font-size:10px;font-weight:650;letter-spacing:.01em;white-space:nowrap}.voice-feedback[hidden]{display:none}.voice-feedback[data-state="listening"]{color:#dba59b}.voice-feedback[data-state="processing"]{color:#a9cdb2}.voice-feedback[data-state="ready"]{color:#83d895}.voice-feedback[data-state="error"]{overflow:hidden;max-width:min(470px,60vw);color:#e2a49a;text-overflow:ellipsis}.voice-feedback time{min-width:31px;color:#d8e7dc;font-variant-numeric:tabular-nums}.voice-wave{display:flex;width:22px;height:13px;align-items:center;justify-content:space-between}.voice-wave i{display:block;width:2px;height:5px;border-radius:2px;background:currentColor;animation:voiceWave .85s ease-in-out infinite}.voice-wave i:nth-child(2),.voice-wave i:nth-child(4){animation-delay:-.22s}.voice-wave i:nth-child(3){animation-delay:-.44s}.voice-feedback[data-state="processing"] .voice-wave i{animation-duration:1.25s}.voice-feedback[data-state="ready"] .voice-wave i,.voice-feedback[data-state="error"] .voice-wave i{animation:none;height:3px}.manu-composer.voice-active .input-info>span:not(.secure-info){display:none}
@keyframes voiceListening{50%{box-shadow:0 0 0 5px rgba(191,83,68,.1)}}@keyframes voiceProcessing{50%{opacity:.42;transform:scale(.92)}}@keyframes voiceWave{0%,100%{height:4px;opacity:.62}50%{height:12px;opacity:1}}
@media(max-width:640px){.voice-feedback{gap:5px;font-size:9px}.voice-feedback[data-state="error"]{max-width:54vw}.voice-wave{width:18px}.manu-composer.voice-active .secure-info{display:none}}
@media(max-width:420px){.voice-button{flex-basis:34px;width:34px;height:34px}.voice-feedback{max-width:calc(100vw - 125px)}.voice-feedback[data-state="error"]{max-width:calc(100vw - 125px)}}
@media(prefers-reduced-motion:reduce){.voice-button.is-listening,.voice-button.is-processing .voice-icon-mic,.voice-wave i{animation:none!important}.voice-wave i{height:6px!important}}

/* Correção cirúrgica: painel de perfil ancorado ao próprio avatar. */
.topbar{position:relative;z-index:20;overflow:visible}
.profile-control{position:relative;z-index:1;display:flex;flex:0 0 auto;align-items:center}
.profile-control .profile-menu{top:calc(100% + 10px);right:0;box-sizing:border-box;width:min(286px,calc(100vw - 24px));max-height:calc(100vh - 84px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:650px){.profile-control .profile-menu{position:fixed;top:66px;right:10px;bottom:auto;left:auto;width:min(286px,calc(100vw - 20px));max-height:calc(100vh - 78px)}}

/* Production support controls */
.support-report-trigger{margin-top:12px;width:100%;border:1px solid rgba(85,190,125,.28);border-radius:8px;background:rgba(8,24,20,.55);color:#bcd1c7;padding:7px 9px;cursor:pointer;font:inherit;font-size:12px}.support-report-trigger:hover{border-color:rgba(85,190,125,.55);color:#fff}.sidebar-card small{display:block;margin-top:7px;color:#7f958b;font-size:10px}.support-report-modal form{display:grid;gap:12px}.support-report-modal label{display:grid;gap:6px}.support-report-modal select,.support-report-modal textarea{width:100%;box-sizing:border-box}
.manu-support-notice{position:fixed;right:18px;bottom:18px;z-index:10000;max-width:min(420px,calc(100vw - 36px));padding:12px 14px;border:1px solid rgba(229,151,86,.55);border-radius:10px;background:#17201d;color:#f4e4d3;box-shadow:0 12px 34px rgba(0,0,0,.35);font-size:13px}.manu-support-notice[hidden]{display:none}
