:root {
    --font-sans: 'Montserrat', ui-sans-serif, system-ui, sans-serif;
    --meeos-navy: #141824;
    --meeos-primary: #3874ff;
    --meeos-primary-hover: #2f63d9;
    --meeos-primary-soft: #e5edff;
    --meeos-accent: #f58220;
    --meeos-canvas: #f5f7fa;
    --meeos-surface: #ffffff;
    --meeos-subtle: #eff2f6;
    --meeos-border: #e3e6ed;
    --meeos-text: #31374a;
    --meeos-muted: #6e7891;
    --meeos-success: #16a34a;
    --meeos-success-bg: #ecfdf3;
    --meeos-warning: #d97706;
    --meeos-warning-bg: #fffbeb;
    --meeos-danger: #dc2626;
    --meeos-danger-bg: #fef2f2;
    --meeos-sidebar-w: 15.5rem;
    --meeos-topbar-h: 3.25rem;
    --meeos-control-h: 2.125rem;
    --meeos-radius: .375rem;
    --meeos-page-pad: .875rem;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body.meeos-console {
    font-family: var(--font-sans);
    font-size: .8125rem;
    line-height: 1.45;
    color: var(--meeos-text);
    background: var(--meeos-canvas);
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
[x-cloak] { display: none !important; }

.meeos-console-app { min-height: 100vh; }
.meeos-console-sidebar {
    position: fixed; inset: 0 auto 0 0; width: var(--meeos-sidebar-w);
    background: var(--meeos-surface); border-right: 1px solid var(--meeos-border);
    overflow: auto; z-index: 40;
}
.meeos-console-brand {
    display: flex; align-items: center; gap: .6rem; height: var(--meeos-topbar-h);
    padding: 0 1rem; border-bottom: 1px solid var(--meeos-border); font-weight: 600;
    color: var(--meeos-navy); letter-spacing: .02em;
}
.meeos-console-brand span { display: grid; width: 1.7rem; height: 1.7rem; place-items: center;
    background: var(--meeos-primary); color: #fff; border-radius: .4rem; font-size: .7rem; }
.meeos-console-nav { display: flex; flex-direction: column; padding: .5rem .5rem 1.5rem; gap: .05rem; }
.meeos-nav-group { color: var(--meeos-muted); font-size: .68rem; letter-spacing: .04em;
    text-transform: uppercase; padding: .7rem .65rem .25rem; }
.meeos-nav-item {
    display: flex; align-items: center; gap: .55rem; min-height: 2.125rem;
    padding: .3rem .65rem; border-radius: .4rem; color: var(--meeos-text);
}
.meeos-nav-item:hover { background: var(--meeos-subtle); }
.meeos-nav-item.is-active { background: var(--meeos-primary-soft); color: var(--meeos-primary); }
.meeos-nav-item svg { width: 1rem; height: 1rem; flex: 0 0 auto; }
.meeos-console-main { margin-left: var(--meeos-sidebar-w); }
.meeos-console-topbar {
    position: sticky; top: 0; z-index: 20; height: var(--meeos-topbar-h);
    display: flex; align-items: center; gap: .75rem; padding: 0 1rem;
    background: var(--meeos-surface); border-bottom: 1px solid var(--meeos-border);
}
.meeos-console-search { flex: 1; max-width: 22rem; }
.meeos-console-search input, .meeos-field input, .meeos-field select, .meeos-field textarea {
    width: 100%; min-height: var(--meeos-control-h); border: 1px solid var(--meeos-border);
    border-radius: var(--meeos-radius); padding: .3rem .65rem; background: #fff;
}
.meeos-console-page { padding: var(--meeos-page-pad); }
.meeos-menu-btn { display: none; border: 1px solid var(--meeos-border); background: #fff;
    border-radius: .4rem; width: 2.125rem; height: 2.125rem; }
.meeos-user { color: var(--meeos-muted); white-space: nowrap; }
.meeos-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.meeos-page-title { margin: 0; font-size: 1.15rem; font-weight: 500; color: var(--meeos-navy); }
.meeos-page-meta { color: var(--meeos-muted); margin: .15rem 0 0; }
.meeos-page-actions, .meeos-row-actions { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.meeos-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
    min-height: var(--meeos-control-h); padding: 0 .7rem; border-radius: var(--meeos-radius);
    border: 1px solid var(--meeos-border); background: #fff; color: var(--meeos-text); cursor: pointer;
}
.meeos-btn-primary { background: var(--meeos-primary); border-color: var(--meeos-primary); color: #fff; }
.meeos-btn-primary:hover { background: var(--meeos-primary-hover); }
.meeos-btn-secondary:hover { background: var(--meeos-subtle); }
.meeos-btn-danger { color: var(--meeos-danger); }
.meeos-toolbar { background: var(--meeos-surface); border: 1px solid var(--meeos-border);
    border-radius: .5rem; padding: .65rem; margin-bottom: .75rem; }
.meeos-toolbar-row { display: flex; flex-wrap: wrap; gap: .65rem; align-items: end; }
.meeos-field { display: grid; gap: .25rem; min-width: 10rem; }
.meeos-field-search { flex: 1; min-width: 14rem; }
.meeos-label { color: var(--meeos-muted); font-size: .72rem; }
.meeos-table-wrap { background: var(--meeos-surface); border: 1px solid var(--meeos-border);
    border-radius: .5rem; overflow: auto; }
.meeos-table { width: 100%; border-collapse: collapse; }
.meeos-table th, .meeos-table td { padding: .5rem .65rem; text-align: left; border-bottom: 1px solid var(--meeos-border); vertical-align: middle; }
.meeos-table th { font-size: .72rem; color: var(--meeos-muted); font-weight: 500; }
.meeos-table tr:hover td { background: #f8faff; }
.meeos-badge { display: inline-flex; align-items: center; padding: .12rem .45rem; border-radius: 999px;
    font-size: .7rem; background: var(--meeos-subtle); }
.meeos-badge-ok, .meeos-badge-running, .meeos-badge-online, .meeos-badge-active, .meeos-badge-completed { background: var(--meeos-success-bg); color: var(--meeos-success); }
.meeos-badge-idle, .meeos-badge-planned, .meeos-badge-draft { background: #eef2ff; color: #3730a3; }
.meeos-badge-alarm, .meeos-badge-error, .meeos-badge-open, .meeos-badge-inactive, .meeos-badge-cancelled { background: var(--meeos-danger-bg); color: var(--meeos-danger); }
.meeos-badge-paused, .meeos-badge-offline, .meeos-badge-warning { background: var(--meeos-warning-bg); color: var(--meeos-warning); }
.meeos-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .65rem; margin-bottom: .75rem; }
.meeos-kpi { background: var(--meeos-surface); border: 1px solid var(--meeos-border); border-radius: .5rem; padding: .75rem; }
.meeos-kpi small { color: var(--meeos-muted); display: block; }
.meeos-kpi strong { display: block; font-size: 1.25rem; margin-top: .2rem; }
.meeos-panel { background: var(--meeos-surface); border: 1px solid var(--meeos-border); border-radius: .5rem; padding: .75rem; }
.meeos-split { display: grid; grid-template-columns: 2fr 1fr; gap: .75rem; }
.meeos-tabs { display: flex; gap: .25rem; margin-bottom: .65rem; }
.meeos-tabs a { min-height: 2rem; padding: .32rem .65rem; border-radius: .4rem; border: 1px solid transparent; }
.meeos-tabs a.is-active { background: #fff; border-color: var(--meeos-border); }
.meeos-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.meeos-form .full { grid-column: 1 / -1; }
.meeos-alert { padding: .65rem .75rem; border-radius: .5rem; margin-bottom: .75rem; }
.meeos-alert-success { background: var(--meeos-success-bg); color: var(--meeos-success); }
.meeos-alert-error { background: var(--meeos-danger-bg); color: var(--meeos-danger); }
.meeos-empty { padding: 1.2rem; color: var(--meeos-muted); text-align: center; }
.meeos-auth { min-height: 100vh; display: grid; place-items: center; background: var(--meeos-canvas); }
.meeos-auth-panel { width: min(26rem, calc(100% - 2rem)); background: #fff; border: 1px solid var(--meeos-border);
    border-radius: .7rem; padding: 1.4rem; }
.meeos-auth-brand { margin: 0 0 1rem; font-weight: 600; color: var(--meeos-navy); letter-spacing: .08em; }
.pagination { display: flex; gap: .35rem; padding: .65rem; }
.pagination a, .pagination span { min-height: 2rem; padding: .3rem .55rem; border: 1px solid var(--meeos-border); border-radius: .35rem; background: #fff; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem; }
pre.yaml { background: #0f172a; color: #e2e8f0; padding: .75rem; border-radius: .5rem; overflow: auto; }
.meeos-backdrop { display: none; }
@media (max-width: 1199px) {
    .meeos-console-sidebar { transform: translateX(-110%); transition: transform .18s; }
    .meeos-console-sidebar.is-open { transform: none; }
    .meeos-console-main { margin-left: 0; }
    .meeos-menu-btn { display: inline-flex; align-items: center; justify-content: center; }
    .meeos-backdrop { display: block; position: fixed; inset: 0; background: #11182780; z-index: 30; }
    .meeos-split, .meeos-form { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .meeos-console-search { display: none; }
    input, select, textarea, .meeos-btn { min-height: 2.75rem; }
}
