.public-assistant {
    position: fixed;
    right: 18px;
    bottom: 18px;
    width: 54px;
    height: 54px;
    z-index: 5000;
    color: #0b2630;
    font-family: Arial, sans-serif;
}

.public-assistant-launch {
    width: 54px;
    height: 54px;
    border: 2px solid rgba(255,255,255,.8);
    border-radius: 50%;
    background: #087b70;
    color: #fff;
    box-shadow: 0 10px 30px rgba(0,24,35,.28);
    font-size: 27px;
    font-weight: 800;
}

.public-assistant-panel {
    position: absolute;
    right: 0;
    bottom: 66px;
    width: 370px;
    max-width: calc(100vw - 28px) !important;
    height: min(510px, calc(100vh - 110px));
    display: none;
    grid-template-rows: auto 1fr auto auto;
    overflow: hidden;
    border: 1px solid #bdcdcf;
    border-radius: 8px;
    background: #f7faf9;
    box-shadow: 0 18px 55px rgba(0,25,37,.32);
}
.public-assistant-panel.is-open { display: grid; }
.public-assistant-panel header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: #073d49; color: #fff; }
.public-assistant-panel header strong,
.public-assistant-panel header small { display: block; }
.public-assistant-panel header small { margin-top: 3px; color: #b9d4d8; font-size: 11px; }
.public-assistant-header-actions { display: flex; gap: 7px; }
.public-assistant-help-button,
.public-assistant-close,
.public-assistant-help-close { width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.35); border-radius: 6px; background: transparent; color: #fff; font-size: 21px; font-weight: 700; }
.public-assistant-close { font-size: 25px; }

.public-assistant-help { position: absolute; inset: 62px 0 0; z-index: 3; display: none; overflow: auto; background: #f7faf9; }
.public-assistant-help.is-open { display: block; }
.public-assistant-help-title { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #c7d6d7; background: #e3eded; }
.public-assistant-help-title strong { font-size: 15px; }
.public-assistant-help-close { border-color: #9eb2b5; background: #fff; color: #163b44; }
.public-assistant-help-list { padding: 8px 12px 18px; }
.public-assistant-help-group { border-bottom: 1px solid #dbe4e4; }
.public-assistant-help-theme { display: grid; width: 100%; grid-template-columns: 1fr auto 18px; align-items: center; gap: 8px; padding: 12px 4px; border: 0; background: transparent; color: #12333c; text-align: left; font-size: 13px; font-weight: 700; text-transform: uppercase; }
.public-assistant-help-theme small { min-width: 24px; padding: 3px 6px; border-radius: 10px; background: #e3eded; color: #567177; text-align: center; font-size: 10px; }
.public-assistant-help-theme b { font-size: 20px; transition: transform .18s ease; }
.public-assistant-help-group.is-open .public-assistant-help-theme b { transform: rotate(90deg); }
.public-assistant-help-questions { display: none; padding: 0 0 9px 10px; }
.public-assistant-help-group.is-open .public-assistant-help-questions { display: block; }
.public-assistant-help-question { display: block; width: 100%; padding: 7px 4px; border: 0; background: transparent; color: #12333c; text-align: left; font-size: 13px; line-height: 1.25; }
.public-assistant-help-question:hover,
.public-assistant-help-question:focus { color: #087b70; text-decoration: underline; }

.public-assistant-messages { display: flex; flex-direction: column; gap: 9px; overflow: auto; padding: 14px; }
.assistant-message { max-width: 88%; padding: 10px 12px; border-radius: 8px; font-size: 14px; line-height: 1.38; white-space: pre-wrap; }
.assistant-message--bot { align-self: flex-start; border: 1px solid #cfddde; background: #e5eeee; }
.assistant-message--user { align-self: flex-end; background: #087b70; color: #fff; }
.assistant-view-guide { align-self: flex-start; width: min(88%, 300px); padding: 8px 11px 9px; border-left: 3px solid #087b70; border-radius: 0 6px 6px 0; background: #eef6f4; color: #183b40; }
.assistant-view-guide-title { display: block; margin-bottom: 4px; color: #407075; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.assistant-view-guide a { display: inline-block; color: #086e66; font-size: 13px; font-weight: 700; line-height: 1.25; text-decoration: underline; text-underline-offset: 2px; }
.assistant-view-guide a:hover, .assistant-view-guide a:focus-visible { color: #034c47; }
.assistant-view-guide small { display: block; margin-top: 4px; color: #59777b; font-size: 11px; line-height: 1.3; }
.public-assistant-panel form { display: grid; grid-template-columns: 1fr 42px; gap: 8px; padding: 10px 12px; border-top: 1px solid #d5dfe0; background: #fff; }
.public-assistant-panel input { min-width: 0; height: 42px; padding: 0 11px; border: 1px solid #aebfc1; border-radius: 6px; font-size: 15px; }
.public-assistant-panel form button { border: 0; border-radius: 6px; background: #d7aa39; color: #092b36; font-size: 20px; }
.public-assistant-note { margin: 0; padding: 0 12px 10px; background: #fff; color: #687d82; font-size: 10px; }

@media (max-width: 600px) {
    .public-assistant { right: 10px; bottom: 10px; }
    .public-assistant-panel { bottom: 62px; height: min(470px, calc(100vh - 90px)); }
    .public-assistant-help { inset: 62px 0 0; }
}
