/* ═══════════════════════════════════════════════════════════════════
   StatutAI components
   ───────────────────────────────────────────────────────────────────
   Component-level styling for the new unified shell:
     - login form (credentials + SSO + "or" divider + boot card extras)
     - chat thread (messages, typing indicator, progress rows)
     - workspace menu (top bar with submenu dropdowns)
     - hub stat cards
     - document collection table
     - document editor (section, clause, analyzer panel)
     - template selector modal
     - doc-modal generic
     - small icon buttons / link buttons
   Sits on top of hud_theme.css. Does NOT override Outprime's tokens.
   ═══════════════════════════════════════════════════════════════════ */


/* ═══ LOGIN — credentials form ════════════════════════════════════ */

.lc-creds {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}

.lc-creds-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lc-creds-label {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--muted, #6b7280);
    text-transform: uppercase;
    margin: 0;
}

.lc-creds-input {
    width: 100%;
    padding: 8px 10px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 13px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid lightgray; /* rgba(255, 255, 255, 0.12);*/
    border-radius: 4px;
    /*color: white;*/
    color: black;
    outline: none;
    transition: border-color .12s ease, background .12s ease;
}

.lc-creds-input:focus {
    border-color: var(--accent, #2563eb);
    background: rgba(255, 255, 255, 0.08);
}

.lc-creds-input::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.lc-creds-error {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    color: #f87171;
    padding: 6px 10px;
    background: rgba(239, 68, 68, 0.1);
    border-left: 2px solid #f87171;
    border-radius: 2px;
}

.lc-btn-primary {
    all: unset;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 10px;
    margin-top: 4px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    background: var(--accent, #2563eb);
    color: white;
    border-radius: 4px;
    transition: background .12s ease, transform .04s ease;
}

.lc-btn-primary:hover:not(:disabled) {
    background: #1d4ed8;
}

.lc-btn-primary:active:not(:disabled) {
    transform: translateY(1px);
}

.lc-btn-primary:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.lc-or {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 0;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--muted, #9ca3af);
}

.lc-or::before,
.lc-or::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(0, 0, 0, 0.1);
}


.lc-switch {
    margin-top: 12px;
    text-align: center;
    font-size: 11px;
    color: var(--muted, #6b7280);
    font-family: var(--mono, 'IBM Plex Mono', monospace);
}

.lc-switch-btn {
    background: none;
    border: none;
    padding: 0;
    color: var(--accent, #2563eb);
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.lc-switch-btn:hover {
    color: #1d4ed8;
}

.lc-switch-btn:hover {
    color: #fff;
}


/* ═══ WORKSPACE MENU (top bar) ════════════════════════════════════ */

#workspaceMenu {
    display: flex;
    align-items: center;
    height: 38px;
    padding: 0 12px;
    background: var(--bg-2, rgba(255, 255, 255, 0.6));
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    position: relative;
    z-index: 50;
    flex-shrink: 0;
}

.menu-group {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.menu-item {
    position: relative;
}

.menu-btn {
    all: unset;
    display: flex;
    align-items: center;
    height: 38px;
    padding: 0 14px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .8px;
    color: var(--text, #0b1220);
    cursor: pointer;
    transition: background .12s ease;
}

.menu-btn:hover,
.menu-btn.active {
    background: rgba(37, 99, 235, 0.08);
    color: var(--accent, #2563eb);
}

.submenu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-top: 2px solid var(--accent, #2563eb);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
    padding: 4px 0;
    display: none;
    z-index: 51;
}

.submenu.open {
    display: block;
}

.submenu-item {
    padding: 8px 14px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    color: var(--text, #0b1220);
    cursor: pointer;
    transition: background .08s ease, padding-left .12s ease;
}

.submenu-item:hover {
    background: rgba(37, 99, 235, 0.08);
    color: var(--accent, #2563eb);
    padding-left: 18px;
}

.workspace-menu-spacer {
    flex: 1;
}

.workspace-menu-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    color: var(--muted, #6b7280);
    letter-spacing: .5px;
}

.workspace-menu-meta .wm-label {
    color: rgba(11, 18, 32, 0.45);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.workspace-menu-meta .wm-val {
    color: var(--text, #0b1220);
    font-weight: 600;
}

.workspace-menu-meta .wm-sep {
    color: rgba(11, 18, 32, 0.2);
    margin: 0 4px;
}


/* ═══ CHAT THREAD ═══════════════════════════════════════════════════ */

#chatThread {
    overflow-y: visible;
    padding: 16px 16px 8px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    /*overflow-y: hidden;*/
}

.msg {
    display: flex;
    width: 100%;
}

.msg-inner {
    max-width: 85%;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.5;
    word-wrap: break-word;
    white-space: pre-wrap;
}

.msg-user {
    justify-content: flex-end;
}

.msg-user .msg-inner {
    background: var(--accent, #2563eb);
    color: white;
    border-bottom-right-radius: 2px;
}

.msg-assistant .msg-inner {
    background: var(--bg-3, rgba(11, 18, 32, 0.04));
    color: var(--text, #0b1220);
    border-bottom-left-radius: 2px;
}

.msg-system {
    justify-content: center;
}

.msg-system .msg-inner {
    background: transparent;
    color: var(--muted, #6b7280);
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    letter-spacing: .5px;
    border: 1px dashed rgba(11, 18, 32, 0.15);
    border-radius: 4px;
    padding: 5px 10px;
    max-width: 90%;
}

.msg-text {
    white-space: pre-wrap;
}

/* Typing indicator */
.msg-typing-dots {
    display: flex;
    gap: 4px;
    padding: 4px 0;
}

.msg-typing-dots span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--muted, #6b7280);
    animation: typingPulse 1.2s ease-in-out infinite;
}

.msg-typing-dots span:nth-child(2) { animation-delay: .2s; }
.msg-typing-dots span:nth-child(3) { animation-delay: .4s; }

@keyframes typingPulse {
    0%, 60%, 100% { opacity: .3; transform: translateY(0); }
    30%           { opacity: 1;  transform: translateY(-3px); }
}

/* Progress row */
.msg-progress .msg-inner {
    width: 80%;
    max-width: 80%;
    padding: 8px 14px;
}

.msg-progress-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    letter-spacing: .5px;
}

.msg-progress-label {
    flex: 0 0 auto;
    text-transform: uppercase;
    color: var(--muted, #6b7280);
    min-width: 70px;
}

.msg-progress-bar {
    flex: 1;
    height: 4px;
    background: rgba(11, 18, 32, 0.08);
    border-radius: 2px;
    overflow: hidden;
}

.msg-progress-fill {
    height: 100%;
    background: var(--accent, #2563eb);
    transition: width .3s ease;
}

.msg-progress-pct {
    flex: 0 0 auto;
    color: var(--accent, #2563eb);
    font-weight: 600;
    min-width: 32px;
    text-align: right;
}


/* ═══ DOC PANEL — generic shell ═══════════════════════════════════ */

.doc-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 40px;
    text-align: center;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    color: var(--muted, #6b7280);
}

.doc-empty-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #0b1220);
    margin-bottom: 6px;
}

.doc-empty-sub {
    font-size: 11px;
    letter-spacing: .5px;
}

/* doc-topbar — header bar above any doc-body content */
.doc-topbar {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 12px;
    background: var(--bg-2, rgba(255, 255, 255, 0.6));
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    flex-shrink: 0;
}

.doc-title {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .8px;
    color: var(--text, #0b1220);
    text-transform: uppercase;
}

.doc-badge {
    padding: 2px 8px;
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent, #2563eb);
    border-radius: 3px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    font-weight: 600;
}

.doc-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
}


/* ═══ HUB ═══════════════════════════════════════════════════════════ */

.hub-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

.hub-stat-card {
    padding: 16px;
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-left: 3px solid var(--accent, #2563eb);
    border-radius: 4px;
    transition: transform .12s ease, box-shadow .12s ease;
}

.hub-stat-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(11, 18, 32, 0.06);
}

.hub-stat-label {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--muted, #6b7280);
    margin-bottom: 8px;
}

.hub-stat-value {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 28px;
    font-weight: 700;
    color: var(--text, #0b1220);
    line-height: 1;
    margin-bottom: 12px;
}

.hub-stat-actions {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
}

.hub-stat-actions a {
    color: var(--accent, #2563eb);
    text-decoration: none;
    transition: text-decoration .08s ease;
}

.hub-stat-actions a:hover {
    text-decoration: underline;
}

.hub-stat-sep {
    color: var(--muted, #6b7280);
    margin: 0 6px;
}


/* ═══ DOCUMENT COLLECTION ════════════════════════════════════════ */

.doc-collection-body {
    padding: 0;
}

.doc-row-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.doc-row-table thead {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--bg-2, rgba(255, 255, 255, 0.95));
    backdrop-filter: blur(6px);
}

.doc-row-th {
    padding: 10px 12px;
    text-align: left;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--muted, #6b7280);
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    white-space: nowrap;
}

.doc-row-th-actions {
    width: 80px;
    text-align: right;
}

.doc-row {
    cursor: pointer;
    transition: background .08s ease;
}

.doc-row:hover {
    background: rgba(37, 99, 235, 0.04);
}

.doc-row.selected {
    background: rgba(37, 99, 235, 0.08);
}

.doc-row td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    color: var(--text, #0b1220);
    vertical-align: middle;
}

.doc-row-type {
    display: inline-block;
    padding: 2px 8px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .5px;
    background: rgba(11, 18, 32, 0.05);
    border-radius: 3px;
    color: var(--text, #0b1220);
}

.doc-row-actions {
    text-align: right;
    white-space: nowrap;
}

.doc-row-loading,
.doc-row-empty {
    padding: 30px !important;
    text-align: center;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    color: var(--muted, #6b7280);
    letter-spacing: .5px;
}


/* ═══ DOCUMENT EDITOR ═══════════════════════════════════════════════ */

.doc-document-body {
    display: flex;
    gap: 16px;
    padding: 16px;
}

.doc-editor-area {
    flex: 1 1 auto;
    min-width: 0;
}

.doc-analyzer-area {
    flex: 0 0 320px;
    border-left: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    padding-left: 16px;
    overflow-y: auto;
}

.doc-analyzer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.08));
}

.doc-analyzer-title {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--text, #0b1220);
    text-transform: uppercase;
}

.doc-section {
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-radius: 4px;
    margin-bottom: 10px;
    overflow: hidden;
}

.doc-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    background: var(--bg-2, rgba(0, 0, 0, 0.02));
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.06));
}

.doc-section-title {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--text, #0b1220);
}

.doc-section-body {
    padding: 12px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--text, #0b1220);
    transition: max-height .25s ease;
}

.doc-section-body.collapsed {
    display: none;
}

.doc-toggle-btn {
    all: unset;
    cursor: pointer;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--accent, #2563eb);
    padding: 2px 6px;
    border-radius: 2px;
    transition: background .08s ease;
}

.doc-toggle-btn:hover {
    background: rgba(37, 99, 235, 0.08);
}

.doc-clause-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    margin: 0;
}

.doc-clause-checkbox {
    width: 14px;
    height: 14px;
    accent-color: var(--accent, #2563eb);
    cursor: pointer;
}

.doc-clause-checkbox:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.doc-footer-section {
    background: transparent;
    border: none;
    margin-top: 16px;
    padding: 0 12px;
}

/* Editable placeholder spans */
.editable {
    display: inline-block;
    min-width: 100px;
    padding: 1px 4px;
    border-bottom: 1px dotted #999;
    background: rgba(37, 99, 235, 0.03);
    transition: background .08s ease, border-color .08s ease;
}

.editable:focus {
    outline: none;
    background: rgba(37, 99, 235, 0.08);
    border-bottom: 1px solid var(--accent, #2563eb);
}

.editable[placeholder]:empty::before {
    content: attr(placeholder);
    color: rgba(11, 18, 32, 0.3);
    font-style: italic;
}

/* Analysis cards (right panel) */
.analysis-card {
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-radius: 4px;
    margin-bottom: 10px;
}

.analysis-card-header {
    padding: 8px 12px;
    background: var(--bg-2, rgba(0, 0, 0, 0.02));
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.06));
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text, #0b1220);
}

.analysis-card-body {
    padding: 10px 12px;
    font-size: 12px;
    line-height: 1.5;
}

.analysis-card-body ul {
    margin: 0;
    padding-left: 18px;
}

.analysis-card-body li {
    margin-bottom: 4px;
}

.analysis-progress {
    height: 6px;
    background: rgba(11, 18, 32, 0.05);
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 6px;
}

.analysis-progress-bar {
    height: 100%;
    background: var(--accent, #2563eb);
    transition: width .3s ease;
}

.analysis-score {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 18px;
    font-weight: 700;
    color: var(--accent, #2563eb);
    text-align: right;
}

.risk-high   { color: #dc2626; }
.risk-medium { color: #ea580c; }
.risk-low    { color: #16a34a; }


/* ═══ TEMPLATE SELECTOR (doc-modal) ═════════════════════════════════ */

.doc-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(11, 18, 32, 0.5);
    backdrop-filter: blur(4px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.doc-modal-backdrop.open {
    display: flex;
}

.doc-modal {
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    /*border-radius: 6px;*/
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
    max-width: 720px;
    width: 92%;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

.doc-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.08));
}

.doc-modal-title {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text, #0b1220);
}

.doc-modal-body {
    padding: 16px;
    overflow-y: auto;
    flex: 1;
}

.doc-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 16px;
    border-top: 1px solid var(--line, rgba(0, 0, 0, 0.08));
}

/* Template list inside the modal */
.tpl-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tpl-loading,
.tpl-empty {
    padding: 30px;
    text-align: center;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    letter-spacing: .5px;
    color: var(--muted, #6b7280);
}

.tpl-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-radius: 4px;
    cursor: pointer;
    transition: border-color .08s ease, background .08s ease, transform .08s ease;
}

.tpl-item:hover {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.04);
    transform: translateX(2px);
}

.tpl-item-name {
    font-size: 13px;
    font-weight: 500;
    color: var(--text, #0b1220);
}

.tpl-item-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}

.tpl-item-version {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 10px;
    color: var(--muted, #6b7280);
    padding: 1px 6px;
    background: rgba(11, 18, 32, 0.05);
    border-radius: 2px;
}

.tpl-item-arrow {
    font-size: 16px;
    color: var(--muted, #6b7280);
    transition: transform .08s ease, color .08s ease;
}

.tpl-item:hover .tpl-item-arrow {
    color: var(--accent, #2563eb);
    transform: translateX(2px);
}


/* ═══ PARTY SELECTION (step 2 of template selector) ════════════════ */

.party-template-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    opacity: .5;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.party-role-card {
    border: 1px solid var(--line, rgba(0,0,0,.08));
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 16px;
    background: var(--bg-surface, #fff);
}

.party-role-card-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    opacity: .55;
    margin-bottom: 10px;
    text-transform: uppercase;
}

.party-role-btns {
    display: flex;
    gap: 8px;
}

.party-role-btn {
    flex: 1;
    padding: 7px 10px;
    border-radius: 5px;
    border: 1.5px solid var(--line, rgba(0,0,0,.1));
    background: var(--bg-page, #f5f6f7);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: border-color .1s, background .1s, color .1s;
    color: var(--text-secondary, #555);
}

.party-role-btn.selected {
    border-color: var(--accent, #2563eb);
    background: color-mix(in srgb, var(--accent, #2563eb) 8%, transparent);
    color: var(--accent, #2563eb);
    font-weight: 600;
}

.party-role-btn:hover:not(.selected) {
    border-color: var(--accent, #2563eb);
    color: var(--text-primary, #111);
}

.party-section-header {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--text-primary, #111);
    opacity: .7;
    margin-bottom: 8px;
}

.party-section-role {
    font-size: 10px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 3px;
    background: color-mix(in srgb, var(--accent, #2563eb) 12%, transparent);
    color: var(--accent, #2563eb);
    letter-spacing: .04em;
    text-transform: none;
}

.party-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 180px;
    overflow-y: auto;
}

.party-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 6px;
    border: 1.5px solid var(--line, rgba(0,0,0,.08));
    background: var(--bg-surface, #fff);
    cursor: pointer;
    transition: border-color .1s, background .1s;
}

.party-card:hover {
    border-color: var(--accent, #2563eb);
}

.party-card.selected {
    border-color: var(--accent, #2563eb);
    background: color-mix(in srgb, var(--accent, #2563eb) 6%, transparent);
}

.party-card-icon {
    font-size: 18px;
    color: var(--text-secondary, #777);
    flex-shrink: 0;
}

.party-card.selected .party-card-icon {
    color: var(--accent, #2563eb);
}

.party-card-name {
    flex: 1;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary, #111);
}

.party-card-check {
    font-size: 18px;
    color: var(--accent, #2563eb);
    flex-shrink: 0;
}

.party-empty {
    font-size: 12px;
    color: var(--text-muted, #888);
    padding: 8px 4px;
}

.party-empty a {
    color: var(--accent, #2563eb);
    text-decoration: underline;
    cursor: pointer;
}

.party-add-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 8px 10px;
    border-radius: 5px;
    border: 1.5px dashed var(--line, rgba(0,0,0,.15));
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    color: var(--accent, #2563eb);
    cursor: pointer;
    transition: background .1s, border-color .1s;
    width: 100%;
}

.party-add-btn:hover {
    background: color-mix(in srgb, var(--accent, #2563eb) 6%, transparent);
    border-color: var(--accent, #2563eb);
}

.party-add-btn .material-symbols-rounded {
    font-size: 16px;
}

.party-inline-create {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-radius: 5px;
    border: 1.5px solid var(--accent, #2563eb);
    background: color-mix(in srgb, var(--accent, #2563eb) 4%, var(--bg-surface, #fff));
}

.party-inline-create input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 13px;
    color: var(--text-primary, #111);
    outline: none;
    padding: 2px 4px;
}

.party-inline-save {
    padding: 4px 10px;
    border-radius: 4px;
    border: none;
    background: var(--accent, #2563eb);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity .1s;
}

.party-inline-save:hover { opacity: .85; }

.party-inline-cancel {
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    font-family: "Material Symbols Rounded", sans-serif;
    font-size: 18px;
    color: var(--text-secondary, #777);
    line-height: 1;
    display: flex;
    align-items: center;
}

.party-inline-cancel:hover { color: var(--text-primary, #111); }

.doc-modal-footer .link-btn.disabled,
.doc-modal-footer .link-btn:disabled {
    opacity: .35;
    cursor: default;
    pointer-events: none;
}


/* ═══ TABLE SEARCH (used in doc-collection topbar + tpl modal) ════ */

.tbl-search {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    background: white;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-radius: 4px;
    width: 100%;
    transition: border-color .08s ease;
}

.tbl-search:focus-within {
    border-color: var(--accent, #2563eb);
}

.tbl-search-icon {
    font-size: 16px;
    color: var(--muted, #6b7280);
}

.tbl-search input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 12px;
    color: var(--text, #0b1220);
}

.tbl-search-clear {
    all: unset;
    cursor: pointer;
    font-family: 'Material Symbols Rounded';
    font-size: 14px;
    color: var(--muted, #6b7280);
    padding: 0 2px;
    border-radius: 2px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .08s ease, color .08s ease;
}

.tbl-search input:not(:placeholder-shown) ~ .tbl-search-clear {
    opacity: 1;
    pointer-events: auto;
}

.tbl-search-clear:hover {
    color: var(--text, #0b1220);
}


/* ═══ ICON / LINK BUTTONS ══════════════════════════════════════════ */

.icon-btn {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    cursor: pointer;
    border-radius: 3px;
    color: var(--muted, #6b7280);
    font-family: 'Material Symbols Rounded';
    font-size: 18px;
    transition: background .08s ease, color .08s ease;
}

.icon-btn:hover {
    background: rgba(11, 18, 32, 0.05);
    color: var(--text, #0b1220);
}

.icon-btn-sm {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    cursor: pointer;
    border-radius: 3px;
    color: var(--muted, #6b7280);
    font-family: 'Material Symbols Rounded';
    font-size: 14px;
    transition: background .08s ease, color .08s ease;
}

.icon-btn-sm:hover {
    background: rgba(11, 18, 32, 0.05);
    color: var(--text, #0b1220);
}

.icon-btn-sm.danger:hover {
    background: rgba(220, 38, 38, 0.08);
    color: #dc2626;
}

.link-btn {
    all: unset;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    cursor: pointer;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .5px;
    color: var(--accent, #2563eb);
    border-radius: 3px;
    transition: background .08s ease;
}

.link-btn:hover {
    background: rgba(37, 99, 235, 0.08);
}

.link-btn:disabled {
    opacity: .35;
    cursor: not-allowed;
}

.link-btn .material-symbols-rounded {
    font-size: 16px;
}

.link-btn-success {
    color: #16a34a !important;
    background: rgba(22, 163, 74, 0.08) !important;
}

.link-btn-danger {
    color: #dc2626 !important;
}

.link-btn-danger:hover {
    background: rgba(220, 38, 38, 0.08) !important;
}

.doc-modal-confirm {
    max-width: 380px;
}

.doc-confirm-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 28px 24px 12px;
    text-align: center;
}

.doc-confirm-icon {
    font-size: 36px;
    color: #dc2626;
    opacity: .8;
    margin-bottom: 12px;
}

.doc-confirm-msg {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--fg, #1f2937);
}


/* ═══ CHAT INPUT POLISH ═══════════════════════════════════════════ */
/* Outprime defines most of this; just a small tweak for empty state. */

#chatInput::placeholder {
    color: rgba(11, 18, 32, 0.3);
}


/* ═══ MOBILE / NARROW ═══════════════════════════════════════════════ */

@media (max-width: 900px) {
    .hub-stats-grid {
        grid-template-columns: 1fr 1fr;
    }
    .doc-document-body {
        flex-direction: column;
    }
    .doc-analyzer-area {
        flex: 0 0 auto;
        border-left: none;
        border-top: 1px solid var(--line, rgba(0, 0, 0, 0.08));
        padding-left: 0;
        padding-top: 12px;
        margin-top: 12px;
    }
    .tbl-search {
        width: 160px;
    }
}


/* ═══ PROFILE FORM (entity create/edit modal) ═══════════════════════ */

.profile-type-toggle {
    display: flex;
    gap: 6px;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line, rgba(0, 0, 0, 0.08));
}

.profile-type-btn {
    all: unset;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .5px;
    border-radius: 4px;
    border: 1.5px solid var(--line, rgba(0, 0, 0, 0.12));
    cursor: pointer;
    color: var(--muted, #6b7280);
    transition: border-color .12s, color .12s, background .12s;
}

.profile-type-btn .material-symbols-rounded {
    font-size: 16px;
}

.profile-type-btn:hover {
    border-color: var(--accent, #2563eb);
    color: var(--accent, #2563eb);
}

.profile-type-btn.active {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.07);
    color: var(--accent, #2563eb);
}

.profile-form-row {
    margin-bottom: 10px;
}

.profile-form-row label,
.profile-form-grid label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .7px;
    opacity: .55;
    margin-bottom: 4px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
}

.profile-form-row input,
.profile-form-grid input {
    width: 100%;
    box-sizing: border-box;
}

.profile-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
    margin-bottom: 10px;
}

.profile-form-label-section {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .7px;
    opacity: .45;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    text-transform: uppercase;
    padding: 10px 0 8px;
    border-top: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    margin-top: 4px;
    margin-bottom: 6px;
}


/* ═══ ENTITY TYPE CHIP ═══════════════════════════════════════════════ */

.entity-type-chip {
    display: inline-flex;
    align-items: center;
    padding: 1px 6px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .6px;
    border-radius: 3px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    text-transform: uppercase;
    margin-left: 6px;
    vertical-align: middle;
}

.entity-type-chip.company {
    background: rgba(37, 99, 235, 0.1);
    color: #2563eb;
}

.entity-type-chip.individual {
    background: rgba(16, 185, 129, 0.1);
    color: #059669;
}


/* ═══ PARTY TYPE BAR (document editor) ══════════════════════════════ */

.party-type-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--surface, #f8f9fb);
    border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
    border-radius: 5px;
    margin-bottom: 10px;
}

.party-type-bar-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .6px;
    opacity: .5;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    text-transform: uppercase;
    margin-right: 4px;
}

.party-type-chip {
    all: unset;
    padding: 3px 9px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    border-radius: 3px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    border: 1.5px solid var(--line, rgba(0, 0, 0, 0.12));
    cursor: pointer;
    color: var(--muted, #6b7280);
    transition: border-color .1s, color .1s, background .1s;
}

.party-type-chip:hover {
    border-color: var(--accent, #2563eb);
    color: var(--accent, #2563eb);
}

.party-type-chip.active {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.08);
    color: var(--accent, #2563eb);
}


/* ═══ INLINE CREATE TYPE TOGGLE (template-selector step 2) ══════════ */

.party-inline-type-toggle {
    display: flex;
    gap: 4px;
    margin-bottom: 6px;
}

.party-inline-type-btn {
    all: unset;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .4px;
    border-radius: 3px;
    border: 1px solid var(--line, rgba(0, 0, 0, 0.12));
    cursor: pointer;
    color: var(--muted, #6b7280);
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    transition: border-color .1s, color .1s, background .1s;
}

.party-inline-type-btn .material-symbols-rounded {
    font-size: 13px;
}

.party-inline-type-btn.active {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.07);
    color: var(--accent, #2563eb);
}


/* ═══ PARTY TYPE BADGE (template-selector header) ═══════════════════ */

.party-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .7px;
    border-radius: 3px;
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent, #2563eb);
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    margin-left: 8px;
    vertical-align: middle;
}

/* ═══ PAGINATION ═════════════════════════════════════════════════════ */

.doc-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 0 4px;
    min-height: 36px;
}

.pag-btn {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    cursor: pointer;
    font-family: 'Material Symbols Rounded';
    font-size: 18px;
    color: var(--accent, #2563eb);
    transition: background .08s ease;
}

.pag-btn:hover:not(:disabled) {
    background: rgba(37, 99, 235, 0.08);
}

.pag-btn:disabled {
    color: var(--muted, #9ca3af);
    cursor: default;
}

.pag-info {
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    font-size: 11px;
    color: var(--muted, #6b7280);
    min-width: 100px;
    text-align: center;
}

.pag-label {
    font-size: 11px;
    color: var(--muted, #6b7280);
    user-select: none;
}

.pag-select {
    font-size: 11px;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    color: var(--fg, #1f2937);
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 4px;
    padding: 2px 4px;
    cursor: pointer;
    outline: none;
}

.pag-select:focus {
    border-color: var(--accent, #2563eb);
}


/* ═══ PARTY CARD ID CHIP ═════════════════════════════════════════════ */

/* ═══ BREADCRUMB ═════════════════════════════════════════════════════ */

.doc-breadcrumb-root {
    color: var(--accent, #2563eb);
    text-decoration: none;
    opacity: .8;
}

.doc-breadcrumb-root:hover {
    opacity: 1;
    text-decoration: underline;
}

.doc-breadcrumb-sep {
    opacity: .4;
    margin: 0 2px;
}

/* ═══ FOLDER / FILE ROW ICONS ════════════════════════════════════════ */

.doc-row-folder-icon {
    font-size: 16px;
    vertical-align: middle;
    margin-right: 5px;
    color: var(--accent, #2563eb);
    opacity: .75;
}

.doc-row-file-icon {
    font-size: 15px;
    vertical-align: middle;
    margin-right: 5px;
    opacity: .45;
}

.doc-row-folder {
    background: rgba(37, 99, 235, 0.03);
}

.doc-row-folder:hover {
    background: rgba(37, 99, 235, 0.07) !important;
}

/* ═══ PARTY CARD ID CHIP ═════════════════════════════════════════════ */

.party-card-id {
    font-size: 10px;
    opacity: .55;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    margin-left: auto;
    margin-right: 6px;
}


/* ═══ VIEW TOGGLE (list / icons) ═════════════════════════════════════ */

.view-toggle-group {
    display: flex;
    align-items: center;
    gap: 1px;
    padding: 2px;
    background: rgba(11, 18, 32, 0.04);
    border-radius: 4px;
    flex-shrink: 0;
}

.view-toggle-btn {
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 3px;
    cursor: pointer;
    font-family: 'Material Symbols Rounded';
    font-size: 16px;
    color: var(--muted, #6b7280);
    transition: background .08s ease, color .08s ease;
}

.view-toggle-btn.active {
    background: white;
    color: var(--accent, #2563eb);
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.view-toggle-btn:hover:not(.active) {
    color: var(--text, #0b1220);
}


/* ═══ ICONS GRID VIEW ════════════════════════════════════════════════ */

.doc-icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
    padding: 16px;
    align-content: start;
}

.doc-icon-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 14px 10px 10px;
    background: white;
    border: 1.5px solid var(--line, rgba(0, 0, 0, 0.08));
    border-radius: 6px;
    cursor: pointer;
    transition: border-color .1s, background .1s, box-shadow .1s;
    position: relative;
    text-align: center;
    min-height: 100px;
}

.doc-icon-card:hover {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.03);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
}

.doc-icon-card.selected {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.07);
}

.doc-icon-card.folder {
    background: rgba(37, 99, 235, 0.04);
    border-color: rgba(37, 99, 235, 0.18);
}

.doc-icon-card.folder:hover {
    background: rgba(37, 99, 235, 0.09);
    border-color: var(--accent, #2563eb);
}

.doc-icon-main-icon {
    font-size: 38px;
    margin-bottom: 7px;
    line-height: 1;
}

.doc-icon-card.folder .doc-icon-main-icon {
    color: var(--accent, #2563eb);
}

.doc-icon-card.file .doc-icon-main-icon {
    color: #64748b;
    opacity: .75;
}

.doc-icon-name {
    font-size: 11px;
    font-weight: 600;
    color: var(--text, #0b1220);
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    line-height: 1.3;
    word-break: break-word;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}

.doc-icon-meta {
    font-size: 9px;
    color: var(--muted, #9ca3af);
    margin-top: 4px;
    line-height: 1.3;
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
}

.doc-icon-actions {
    position: absolute;
    top: 4px;
    right: 4px;
    display: flex;
    gap: 2px;
    opacity: 0;
    transition: opacity .1s;
}

.doc-icon-card:hover .doc-icon-actions {
    opacity: 1;
}


/* ═══ DOCUMENT EDITOR PARTY BAR ══════════════════════════════════════ */

.doc-party-bar {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 10px;
}

.doc-party-slot {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    padding: 10px 14px;
    background: white;
    border: 1.5px solid var(--line, rgba(0, 0, 0, 0.1));
    border-radius: 6px;
    cursor: pointer;
    transition: border-color .1s, background .1s;
    min-width: 0;
}

.doc-party-slot:hover {
    border-color: var(--accent, #2563eb);
    background: rgba(37, 99, 235, 0.03);
}

.doc-party-slot.empty {
    border-style: dashed;
    border-color: rgba(0, 0, 0, 0.15);
    background: rgba(11, 18, 32, 0.01);
}

.doc-party-slot.empty:hover {
    border-style: dashed;
    border-color: var(--accent, #2563eb);
}

.doc-party-slot-icon {
    font-size: 20px;
    color: var(--accent, #2563eb);
    opacity: .7;
    flex-shrink: 0;
}

.doc-party-slot.empty .doc-party-slot-icon {
    opacity: .3;
    color: var(--muted, #9ca3af);
}

.doc-party-slot-body {
    flex: 1;
    min-width: 0;
}

.doc-party-slot-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--muted, #9ca3af);
    font-family: var(--mono, 'IBM Plex Mono', monospace);
    margin-bottom: 1px;
}

.doc-party-slot-role {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: none;
    font-family: inherit;
    color: var(--accent, #2563eb);
    background: color-mix(in srgb, var(--accent, #2563eb) 10%, transparent);
    border-radius: 3px;
    padding: 0 4px;
    line-height: 14px;
}

.doc-party-slot-value {
    font-size: 13px;
    font-weight: 500;
    color: var(--text, #0b1220);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.doc-party-slot-value.empty {
    color: var(--muted, #b0b8c5);
    font-style: italic;
    font-size: 12px;
    font-weight: 400;
}

.doc-party-slot-arrow {
    font-size: 16px;
    color: var(--muted, #b0b8c5);
    flex-shrink: 0;
    transition: color .1s;
}

.doc-party-slot:hover .doc-party-slot-arrow {
    color: var(--accent, #2563eb);
}

.doc-party-sep {
    font-size: 18px;
    color: var(--muted, #cbd5e1);
    flex-shrink: 0;
    align-self: center;
}

.doc-party-swap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1.5px solid var(--line, rgba(0,0,0,.1));
    background: var(--bg-page);
    cursor: pointer;
    flex-shrink: 0;
    align-self: center;
    color: var(--text-secondary);
    transition: border-color .12s, color .12s, background .12s;
}
.doc-party-swap:hover {
    border-color: var(--accent, #2563eb);
    color: var(--accent, #2563eb);
    background: color-mix(in srgb, var(--accent, #2563eb) 6%, var(--bg-page));
}
.doc-party-swap .material-symbols-rounded {
    font-size: 18px;
}


@media (max-width: 600px) {
    .doc-party-bar {
        flex-direction: column;
    }
    .doc-party-sep {
        transform: rotate(90deg);
        align-self: flex-start;
        margin-left: 18px;
    }
    .doc-icon-grid {
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
        gap: 8px;
        padding: 10px;
    }
}

/* ── Role picker (template selector step 2) ────────────────────────────── */
.role-picker-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.role-picker-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.role-picker-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--text-secondary);
    margin-bottom: 2px;
}
.role-picker-arrow {
    margin-top: 36px;
    color: var(--text-secondary);
    font-size: 20px;
    flex-shrink: 0;
}
.role-btn {
    padding: 10px 14px;
    border-radius: 6px;
    border: 1.5px solid var(--line, rgba(0,0,0,.1));
    background: var(--bg-page, #f5f6f7);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    text-align: left;
    color: var(--text-secondary);
    transition: border-color .12s, background .12s, color .12s;
}
.role-btn.active {
    border-color: var(--accent, #2563eb);
    background: color-mix(in srgb, var(--accent, #2563eb) 8%, transparent);
    color: var(--accent, #2563eb);
    font-weight: 600;
}
.role-btn:hover:not(.active) {
    border-color: var(--accent, #2563eb);
    color: var(--text-primary);
}
