:root {
    --bee-sidebar-width: 260px;
    --bee-sidebar-compact-width: 72px;
    --bee-sidebar-bg: #20252b;
    --bee-sidebar-text: #f8fafc;
    --bee-sidebar-muted: #98a2b3;
    --bee-sidebar-soft: rgba(255,255,255,.07);
    --bee-border: #e5e7eb;
    --bee-bg: #f5f7fa;
    --bee-card: #ffffff;
    --bee-text: #172033;
    --bee-muted: #667085;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--bee-bg); color: var(--bee-text); }
.bee-shell { min-height: 100vh; }

.bee-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    width: var(--bee-sidebar-width);
    padding: 14px 10px;
    background: var(--bee-sidebar-bg);
    color: var(--bee-sidebar-text);
    transition: width .2s ease;
}

.bee-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    padding: 0 10px 14px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.bee-brand-mark {
    display: grid;
    place-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #f4b942;
    color: #20252b;
    font-weight: 800;
}

.bee-brand-text { min-width: 0; }
.bee-brand-text strong, .bee-brand-text small { display: block; }
.bee-brand-text small { color: var(--bee-sidebar-muted); font-size: 11px; }

.bee-user {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,.05);
}
.bee-user strong, .bee-user small { display: block; overflow: hidden; text-overflow: ellipsis; }
.bee-user small { color: var(--bee-sidebar-muted); }

.bee-menu {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
    padding-top: 14px;
    overflow-y: auto;
}

.bee-nav-link,
.bee-nav-group-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 44px;
    padding: 9px 12px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--bee-sidebar-muted);
    text-decoration: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.bee-nav-link:hover,
.bee-nav-group-toggle:hover,
.bee-nav-link.active {
    background: var(--bee-sidebar-soft);
    color: #fff;
}

.bee-nav-link > i,
.bee-nav-group-toggle > i:first-child {
    width: 20px;
    text-align: center;
}

.bee-nav-group-chevron {
    margin-left: auto;
    font-size: 11px;
    transition: transform .2s ease;
}

.bee-nav-group.open .bee-nav-group-chevron { transform: rotate(180deg); }

.bee-nav-submenu {
    display: none;
    flex-direction: column;
    gap: 2px;
    padding: 3px 0 4px 12px;
}

.bee-nav-group.open .bee-nav-submenu { display: flex; }
.bee-nav-submenu .bee-nav-link { min-height: 38px; font-size: 14px; }

.bee-sidebar-footer {
    display: flex;
    gap: 4px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.bee-sidebar-footer .bee-nav-group-toggle { justify-content: center; }

.bee-content {
    min-height: 100vh;
    margin-left: var(--bee-sidebar-width);
    padding: 28px;
    transition: margin-left .2s ease;
}

body.bee-nav-compact .bee-sidebar { width: var(--bee-sidebar-compact-width); }
body.bee-nav-compact .bee-content { margin-left: var(--bee-sidebar-compact-width); }

body.bee-nav-compact .bee-brand-text,
body.bee-nav-compact .bee-user,
body.bee-nav-compact .bee-nav-label,
body.bee-nav-compact .bee-nav-group-chevron {
    display: none;
}

body.bee-nav-compact .bee-nav-submenu { padding-left: 0; }

.bee-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.bee-page-head h1 { margin: 0; font-size: 26px; font-weight: 700; }
.bee-page-head p { margin: 4px 0 0; color: var(--bee-muted); }

.bee-card {
    padding: 20px;
    border: 1px solid var(--bee-border);
    border-radius: 14px;
    background: var(--bee-card);
    box-shadow: 0 2px 8px rgba(16,24,40,.04);
}

.bee-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.bee-module-state {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.bee-module-state + .bee-module-state {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--bee-border);
}

.bee-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #ecfdf3;
    color: #027a48;
    font-size: 12px;
    font-weight: 700;
}

.bee-slot-empty {
    padding: 18px;
    border: 1px dashed #cfd6df;
    border-radius: 12px;
    color: var(--bee-muted);
    text-align: center;
}

.bee-loading { opacity: .55; pointer-events: none; }

/* Initial setup */
.bee-login-card.bee-setup-mode { width: min(980px, 100%); }
.bee-setup-section {
    margin-bottom: 22px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--bee-border);
}
.bee-setup-section:last-child { border-bottom: 0; }

/* Login */
.bee-login-page {
    display: grid;
    place-items: center;
    min-height: calc(100vh - 56px);
}

.bee-login-card {
    width: min(430px, 100%);
    padding: 28px;
}

.bee-login-card h1 { margin-bottom: 8px; }
.bee-login-card .bee-login-subtitle { color: var(--bee-muted); margin-bottom: 22px; }
.bee-login-card .form-label { font-weight: 600; }

/* Identity & Access */
.bee-access-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 16px;
    padding: 5px;
    width: fit-content;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--bee-border);
    border-radius: 10px;
    background: #fff;
}

.bee-access-tab {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px 13px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--bee-muted);
    font: inherit;
    font-size: .88rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.bee-access-tab:hover { background: #f3f4f6; color: var(--bee-text); }
.bee-access-tab.active { background: #20252b; color: #fff; }

.bee-access-content {
    min-height: 180px;
    overflow: hidden;
    border: 1px solid var(--bee-border);
    border-radius: 12px;
    background: #fff;
}

.bee-access-content .table { margin: 0; }
.bee-access-content th { white-space: nowrap; font-size: .78rem; text-transform: uppercase; color: var(--bee-muted); }
.bee-access-content td { vertical-align: middle; }

.bee-access-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 180px;
    color: var(--bee-muted);
}

.bee-permission-table th,
.bee-permission-table td {
    text-align: center;
    white-space: nowrap;
}

.bee-permission-table .bee-access-subject {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 220px;
    text-align: left;
    background: #fff;
}

.bee-permission-table thead .bee-access-subject {
    z-index: 3;
    background: #f8fafc;
}

.bee-role-row td { background: #f8fafc; border-top: 2px solid var(--bee-border); }
.bee-role-row .bee-access-subject { background: #f8fafc; }

.bee-access-level {
    min-width: 50px;
    height: 30px;
    padding: 0 7px;
    border: 0;
    border-radius: 6px;
    font-size: .76rem;
    font-weight: 700;
    cursor: pointer;
}

.bee-access-level.level-no { background: #f3f4f6; color: #9ca3af; }
.bee-access-level.level-r { background: #dbeafe; color: #1d4ed8; }
.bee-access-level.level-rw { background: #dcfce7; color: #15803d; }
.bee-access-level.level-adm { background: #fee2e2; color: #b91c1c; }
.bee-access-level.level-inherit { background: #f3f4f6; color: #4b5563; }

.bee-role-select { min-width: 190px; min-height: 86px; }
.bee-actions { display: flex; flex-wrap: wrap; gap: 7px; }

@media (max-width: 900px) {
    .bee-sidebar { position: static; width: 100%; min-height: auto; }
    .bee-content, body.bee-nav-compact .bee-content { margin-left: 0; }
    body.bee-nav-compact .bee-sidebar { width: 100%; }

    body.bee-nav-compact .bee-brand-text,
    body.bee-nav-compact .bee-user,
    body.bee-nav-compact .bee-nav-label {
        display: block;
    }

    #beeSidebarToggle { display: none; }
}

/* ===== module:catalog ===== */
.catalog-page .catalog-type{display:inline-flex;padding:.2rem .5rem;border-radius:999px;background:var(--bs-tertiary-bg);font-size:.78rem}
.catalog-page tbody tr{cursor:pointer}
.catalog-page tbody tr:hover{background:var(--bs-tertiary-bg)}
.catalog-price-current{font-weight:600}
.catalog-price-history{border-left:3px solid var(--bs-border-color);padding-left:1rem}
.catalog-price-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--bs-border-color)}
.catalog-price-row:last-child{border-bottom:0}


/* ===== module:council ===== */

.council-meeting-status{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600}
.council-meeting-status.open{background:#e7f1ff;color:#0a58ca}
.council-meeting-status.locked{background:#f8d7da;color:#842029}
.council-meeting-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.council-invite-row{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--bs-border-color)}
.council-invite-row:last-child{border-bottom:0}

.council-editor{min-height:170px;border:1px solid #dee2e6;border-radius:.375rem;padding:.75rem;background:#fff}
.council-editor:focus{outline:0;border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
.council-editor img{max-width:100%;height:auto;border-radius:.375rem;margin:.4rem 0}
.council-toolbar{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.4rem}
.council-agenda-item{border-left:4px solid #dee2e6}
.council-agenda-item[data-kind="decision"]{border-left-color:#dc3545}
.council-agenda-item[data-kind="information"]{border-left-color:#0dcaf0}
.council-chip{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;background:#f1f3f5;font-size:.8rem;margin-right:.25rem}


/* ===== module:customers ===== */

.customers-page .customer-row{cursor:pointer;padding:.7rem .8rem;border-radius:.5rem}
.customers-page .customer-row:hover{background:var(--bs-tertiary-bg)}
.customers-page .customer-row.active{background:var(--bs-primary-bg-subtle)}
.customers-page .customer-row+.customer-row{border-top:1px solid var(--bs-border-color)}
.customer-kv{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:.45rem .8rem}
.customer-kv>div:nth-child(odd){color:var(--bs-secondary-color)}
.customer-site-card,.customer-contact-card{border:1px solid var(--bs-border-color);border-radius:.6rem;padding:.8rem;margin-bottom:.65rem}
.customer-site-card:last-child,.customer-contact-card:last-child{margin-bottom:0}
.customer-pill{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;background:var(--bs-tertiary-bg);font-size:.78rem}
.customer-section-empty{padding:1rem;border:1px dashed var(--bs-border-color);border-radius:.5rem;color:var(--bs-secondary-color)}


/* ===== module:invoicing ===== */
.invoicing-page tbody tr[data-id]{cursor:pointer}
.invoicing-page tbody tr[data-id]:hover{background:var(--bs-tertiary-bg)}
.invoicing-page .table th{white-space:nowrap}

/* ===== module:tasks ===== */

.bee-task-editor{min-height:170px;border:1px solid #dee2e6;border-radius:.375rem;padding:.75rem;background:#fff}
.bee-task-editor:focus{outline:0;border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
.bee-task-editor img{max-width:100%;height:auto;border-radius:.375rem;margin:.4rem 0}
.bee-task-toolbar{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.4rem}
.bee-task-relation{font-size:.8rem;padding:.2rem .5rem;border-radius:999px;background:#eef2f6;display:inline-flex;margin:.15rem .15rem .15rem 0}.bee-kanban-column{min-height:420px;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.bee-kanban-card{cursor:grab;transition:transform .12s ease,box-shadow .12s ease}.bee-kanban-card:hover{transform:translateY(-1px);box-shadow:0 .25rem .75rem rgba(0,0,0,.08)}.bee-kanban-card:active{cursor:grabbing}.bee-task-detail-progress{height:8px}.bee-subtask-row:last-child{border-bottom:0!important}

.bee-kanban-column[data-status="new"]{background:#fff3e0}
.bee-kanban-column[data-status="in_progress"]{background:#fff9db}
.bee-kanban-column[data-status="waiting"]{background:#eaf4ff}
.bee-kanban-column[data-status="done"]{background:#e9f8ef}
.bee-task-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border-radius:999px;font-size:.78rem;border:1px solid rgba(0,0,0,.08)}
.bee-task-field-label{font-size:.78rem;color:var(--bs-secondary-color);margin-bottom:.2rem}
.bee-task-inline-edit{border:0;background:transparent;padding:.15rem .25rem;width:100%}
.bee-task-inline-edit:focus{background:var(--bs-body-bg);outline:1px solid var(--bs-primary);border-radius:.25rem}
.bee-task-activity{border-left:2px solid var(--bs-border-color);padding-left:.75rem;margin-left:.25rem}
