:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; --bg:#070b12; --panel:#0c121c; --panel2:#101925; --line:#1d2938; --muted:#8794a7; --text:#edf4fc; --cyan:#37c7f4; --cyan2:#0ea5e9; --green:#38d996; --amber:#f8bb54; --red:#fb7185; }
* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; background:var(--bg); color:var(--text); }
body { min-height:100vh; }
button, input, select, textarea { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:274px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:18px 14px; background:#090f18; border-right:1px solid var(--line); overflow:auto; z-index:20; }
.brand { display:flex; gap:12px; align-items:center; padding:2px 8px 18px; color:inherit; text-decoration:none; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; flex:none; border-radius:11px; background:linear-gradient(145deg,#45d8ff,#087cac); box-shadow:0 8px 28px #0ea5e933; color:#021018; font-weight:900; }
.brand strong, .brand small { display:block; } .brand strong { font-size:17px; } .brand small { margin-top:2px; color:var(--muted); font-size:11px; }
.workspace-switcher { padding:12px 8px 14px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.workspace-switcher>small { color:#637086; font-size:10px; text-transform:uppercase; letter-spacing:.09em; }
.workspace-switcher button { width:100%; margin-top:9px; display:grid; grid-template-columns:auto 1fr auto; gap:9px; align-items:center; padding:8px; border:0; border-radius:10px; background:transparent; text-align:left; cursor:pointer; }
.workspace-switcher button:hover { background:#111b29; }.workspace-switcher b,.workspace-switcher small { display:block; }.workspace-switcher b { font-size:13px; }.workspace-switcher small { margin-top:2px; color:var(--muted); font-size:11px; }
.workspace-avatar { width:29px; height:29px; display:grid; place-items:center; border-radius:8px; background:#17283b; color:#82dcfa; font-weight:700; }
.navigation { padding:13px 0; flex:1; }
.nav-dashboard, .nav-entity { width:100%; display:flex; gap:9px; align-items:center; padding:8px 10px; border:0; border-radius:8px; background:transparent; color:#9ba9bb; text-align:left; cursor:pointer; font-size:13px; }
.nav-dashboard { margin-bottom:8px; }.nav-dashboard:hover,.nav-entity:hover,.nav-entity.active,.nav-dashboard.active { color:#eaf7ff; background:#102232; }
.nav-dashboard.active,.nav-entity.active { box-shadow:inset 2px 0 var(--cyan); color:#8de7ff; }
.nav-icon { width:18px; text-align:center; color:#68d7f8; }
.nav-group { margin:5px 0; }.nav-group summary { list-style:none; display:flex; align-items:center; gap:8px; padding:8px 10px; color:#66758a; cursor:pointer; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.nav-group summary::-webkit-details-marker { display:none; }.nav-group summary::after { content:"›"; margin-left:auto; transform:rotate(90deg); }.nav-group:not([open]) summary::after { transform:none; }
.nav-entity { padding-left:31px; }.nav-entity span:last-child { margin-left:auto; min-width:18px; padding:1px 5px; border-radius:999px; background:#16202d; color:#67768b; text-align:center; font-size:9px; }
.sidebar-footer { display:grid; gap:4px; padding-top:12px; border-top:1px solid var(--line); }.sidebar-footer a { display:flex; justify-content:space-between; padding:8px 9px; color:#8c9aab; font-size:12px; text-decoration:none; }.sidebar-footer a:hover { color:#bfefff; }.version { padding:9px; color:#68778a; font-size:11px; }.status-dot { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:var(--green); box-shadow:0 0 10px var(--green); }
.page-shell { min-width:0; }.topbar { position:sticky; top:0; height:66px; display:flex; align-items:center; gap:18px; padding:0 26px; border-bottom:1px solid var(--line); background:#080e17ee; backdrop-filter:blur(16px); z-index:10; }
.breadcrumbs { min-width:150px; font-size:13px; font-weight:650; }.global-search { width:min(480px,40vw); margin:auto; display:flex; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:#0d1520; color:#718095; }
.global-search input { width:100%; border:0; outline:0; background:transparent; color:var(--text); font-size:12px; }.global-search kbd { padding:2px 5px; border:1px solid #2a3749; border-radius:5px; color:#65758b; font:10px ui-monospace,monospace; white-space:nowrap; }
.top-actions { display:flex; align-items:center; gap:8px; }.icon-button,.profile-button { border:1px solid transparent; background:transparent; cursor:pointer; }.icon-button { width:36px; height:36px; border-radius:9px; }.icon-button:hover,.profile-button:hover { background:#111b28; border-color:var(--line); }.profile-button { display:flex; gap:8px; align-items:center; padding:5px 7px; border-radius:9px; text-align:left; }.profile-button b,.profile-button small { display:block; max-width:150px; overflow:hidden; text-overflow:ellipsis; }.profile-button b { font-size:12px; }.profile-button small { color:var(--muted); font-size:10px; }.profile-avatar { width:31px; height:31px; display:grid; place-items:center; border-radius:9px; background:#143047; color:#8be7ff; font-weight:800; }.mobile-menu { display:none; }
.content { max-width:1540px; margin:auto; padding:30px 34px 60px; }.page-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:24px; }.eyebrow { color:#56d5fb; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }.page-head h1 { margin:7px 0 5px; font-size:27px; letter-spacing:-.03em; }.page-head p { max-width:720px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }.page-actions { display:flex; gap:8px; }
button.primary,.button.primary { padding:9px 14px; border:1px solid #29bce8; border-radius:8px; background:linear-gradient(#22bde9,#0898c5); color:#03131c; font-weight:800; cursor:pointer; text-decoration:none; }.secondary { padding:9px 14px; border:1px solid #273548; border-radius:8px; background:#101925; cursor:pointer; }.primary:hover { filter:brightness(1.08); }.full { width:100%; }.primary:disabled,.secondary:disabled { opacity:.45; cursor:not-allowed; }
.metrics-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; margin-bottom:24px; }.metric-card,.panel-card { border:1px solid var(--line); background:linear-gradient(145deg,#0e1622,#0a111a); border-radius:12px; }.metric-card { padding:16px; }.metric-card small { color:var(--muted); font-size:11px; }.metric-card strong { display:block; margin-top:8px; font-size:25px; }.metric-card span { display:block; margin-top:6px; color:#627084; font-size:10px; }.metric-card .good { color:var(--green); }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:16px; }.panel-card { padding:18px; }.panel-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:15px; }.panel-title h2 { margin:0; font-size:14px; }.panel-title a { color:#6bdaf9; font-size:11px; text-decoration:none; }.domain-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.domain-card { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:10px; background:#0b131e; cursor:pointer; }.domain-card:hover { border-color:#28516a; }.domain-card strong,.domain-card small { display:block; }.domain-card strong { font-size:12px; }.domain-card small { margin-top:3px; color:var(--muted); font-size:10px; }.domain-count { color:#5edbf9; font-size:12px; }
.activity { list-style:none; padding:0; margin:0; }.activity li { display:grid; grid-template-columns:auto 1fr; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); }.activity li:last-child { border:0; }.activity-dot { width:8px; height:8px; margin-top:5px; border-radius:50%; background:var(--cyan); }.activity strong,.activity small { display:block; font-size:11px; }.activity small { margin-top:4px; color:var(--muted); }
.tabs { display:flex; gap:18px; border-bottom:1px solid var(--line); margin-bottom:16px; }.tab { padding:10px 2px; border:0; border-bottom:2px solid transparent; background:transparent; color:#77869a; cursor:pointer; font-size:12px; }.tab.active { color:#8be6ff; border-color:var(--cyan); }
.toolbar { display:flex; gap:8px; align-items:center; margin-bottom:12px; }.toolbar-search { flex:1; max-width:360px; padding:9px 11px; border:1px solid var(--line); border-radius:8px; background:#0d1520; color:var(--text); outline:0; }.toolbar .spacer { flex:1; }.badge { display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border-radius:999px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.badge.active { background:#0d382d; color:#6deab3; }.badge.partial { background:#3b2c0d; color:#ffd47a; }.badge.planned { background:#192334; color:#8392a7; }
.data-table { width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--line); border-radius:11px; overflow:hidden; background:#0a111a; }.data-table th,.data-table td { padding:12px 13px; border-bottom:1px solid var(--line); text-align:left; font-size:11px; }.data-table th { background:#0e1722; color:#738197; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }.data-table tr:last-child td { border:0; }.data-table tr:hover td { background:#0d1722; }.data-table .title-cell { color:#e8f5fd; font-weight:650; }.data-table .muted { color:var(--muted); }.row-actions { display:flex; gap:5px; justify-content:flex-end; }.row-actions button { padding:5px 7px; border:1px solid var(--line); border-radius:6px; background:#111b28; cursor:pointer; font-size:10px; }
.empty-state { padding:60px 24px; border:1px dashed #29374a; border-radius:12px; text-align:center; background:#0a1119; }.empty-icon { width:48px; height:48px; display:grid; place-items:center; margin:0 auto 15px; border-radius:14px; background:#122235; color:#64d7fa; font-size:22px; }.empty-state h2 { margin:0 0 7px; font-size:16px; }.empty-state p { max-width:550px; margin:0 auto 17px; color:var(--muted); font-size:12px; line-height:1.6; }
.doc-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:16px; }.doc-card { padding:20px; border:1px solid var(--line); border-radius:12px; background:#0a111a; }.doc-card h2 { margin:0 0 14px; font-size:15px; }.doc-card h3 { margin:22px 0 8px; color:#9feaff; font-size:12px; }.doc-card p,.doc-card li { color:#9aa8ba; font-size:12px; line-height:1.65; }.code-block { position:relative; padding:15px; border:1px solid #203044; border-radius:9px; background:#050a10; color:#bdeeff; overflow:auto; font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; }.definition-list { display:grid; grid-template-columns:110px 1fr; gap:9px; margin:0; }.definition-list dt { color:#68778c; font-size:10px; }.definition-list dd { margin:0; color:#c7d4e3; font-size:11px; word-break:break-word; }
.model-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.model-card { padding:16px; border:1px solid var(--line); border-radius:10px; background:#0b131d; }.model-card small,.model-card strong { display:block; }.model-card small { color:#667589; font-size:9px; text-transform:uppercase; }.model-card strong { margin-top:7px; font:13px ui-monospace,monospace; }.model-card p { color:var(--muted); font-size:11px; line-height:1.5; }
dialog { color:var(--text); }.auth-dialog,.action-dialog { width:min(430px,calc(100vw - 30px)); padding:0; border:1px solid #27374c; border-radius:16px; background:#0b131e; box-shadow:0 35px 100px #000c; }.auth-dialog::backdrop,.action-dialog::backdrop { background:#03060acc; backdrop-filter:blur(8px); }.auth-dialog form { padding:27px; }.auth-brand { display:flex; gap:11px; align-items:center; margin-bottom:27px; }.auth-brand strong,.auth-brand small { display:block; }.auth-brand small { margin-top:3px; color:var(--muted); font-size:10px; }.auth-dialog h1 { margin:0 0 8px; font-size:23px; }.auth-dialog p { color:var(--muted); font-size:12px; line-height:1.5; }.auth-dialog label { display:grid; gap:7px; margin:18px 0; color:#aab7c7; font-size:11px; }.auth-dialog input,.dialog-form input,.dialog-form select,.dialog-form textarea { width:100%; padding:11px; border:1px solid #2a394c; border-radius:8px; background:#080e16; color:var(--text); outline:0; }.auth-dialog input:focus,.dialog-form input:focus { border-color:var(--cyan2); }.dev-code { margin:-8px 0 15px; padding:9px; border-radius:8px; background:#132d25; color:#79e8b8; text-align:center; font:12px ui-monospace,monospace; }.link-button { width:100%; margin-top:10px; border:0; background:transparent; color:#7bdffc; cursor:pointer; }.form-error { min-height:18px; color:#fda4af!important; }.legal-note { display:block; margin-top:18px; color:#5f6d80; line-height:1.45; }.action-dialog-content { padding:22px; }.dialog-head { display:flex; justify-content:space-between; gap:10px; align-items:start; margin-bottom:18px; }.dialog-head h2 { margin:0; font-size:18px; }.dialog-close { border:0; background:transparent; color:#8290a3; cursor:pointer; }.dialog-form { display:grid; gap:13px; }.dialog-form label { display:grid; gap:6px; color:#9ba9b9; font-size:11px; }.dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:7px; }
.toast-region { position:fixed; right:18px; bottom:18px; display:grid; gap:8px; z-index:100; }.toast { min-width:270px; padding:12px 14px; border:1px solid #284159; border-radius:10px; background:#102131; box-shadow:0 15px 40px #0008; font-size:11px; }.toast.error { border-color:#6b2838; background:#2a121a; }
.entity-link { color:var(--ui-accent); font-weight:650; text-decoration:none; border-bottom:1px solid transparent; }
.entity-link:hover { color:var(--ui-accent-hover); border-bottom-color:currentColor; }
.list-controls { display:grid; grid-template-columns:minmax(230px,1.1fr) minmax(260px,1.7fr) auto auto; gap:10px; align-items:end; margin-bottom:12px; padding:14px; border:1px solid var(--ui-line); border-radius:12px; background:var(--ui-panel); }
.list-controls label { min-width:0; display:grid; gap:5px; color:var(--ui-muted); font-size:10px; }
.list-controls input,.list-controls select,.list-summary select { width:100%; min-height:38px; padding:8px 10px; border:1px solid var(--ui-line-strong); border-radius:8px; background:var(--ui-input); color:var(--ui-text); }
.list-controls .toolbar-search { max-width:none; }
.workspace-filter { padding:8px; border-radius:9px; background:var(--ui-accent-soft); }
.workspace-filter>span { color:var(--ui-accent); font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.workspace-filter small { color:var(--ui-muted); }
.advanced-filters { grid-column:1/-1; border-top:1px solid var(--ui-line); padding-top:9px; }.advanced-filters summary { color:var(--ui-accent); font-size:11px; cursor:pointer; }.advanced-filters>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.admin-mode-button { white-space:nowrap; font-size:11px; }
.list-summary,.pagination { display:flex; align-items:center; gap:14px; color:var(--ui-muted); font-size:11px; }
.list-summary { justify-content:space-between; margin:10px 0; }
.list-summary label { display:flex; align-items:center; gap:8px; }.list-summary select { width:auto; min-height:32px; }
.pagination { justify-content:center; margin:14px 0 4px; }.pagination span { min-width:150px; text-align:center; }
.related-records { margin-top:8px; padding-top:16px; border-top:1px solid var(--ui-line); }
.related-records h3 { margin:0 0 10px; color:var(--ui-heading); font-size:13px; }
.related-groups { display:grid; gap:9px; }.related-group { padding:11px; border:1px solid var(--ui-line); border-radius:10px; background:var(--ui-panel-soft); }
.related-group header { position:static; display:flex; justify-content:space-between; align-items:center; padding:0; border:0; background:transparent; backdrop-filter:none; }
.related-group header strong,.related-group header small { display:block; }.related-group header strong { color:var(--ui-heading); font-size:12px; }.related-group header small { margin-top:2px; color:var(--ui-muted); font-size:10px; }.related-group header a { color:var(--ui-accent); font-size:10px; text-decoration:none; }
.related-group ul { list-style:none; margin:9px 0 0; padding:0; }.related-group li { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-top:1px solid var(--ui-line); font-size:11px; }.related-group li span,.related-group p { color:var(--ui-muted); }.related-group p { margin:9px 0 0; font-size:11px; }
.skeleton { height:38px; margin:6px 0; border-radius:7px; background:linear-gradient(90deg,#101925,#172334,#101925); background-size:200%; animation:pulse 1.2s infinite; } @keyframes pulse { to { background-position:-200% 0; } }
@media (max-width:1100px) { .metrics-grid { grid-template-columns:repeat(2,1fr); }.dashboard-grid,.doc-layout { grid-template-columns:1fr; } }
@media (max-width:780px) { .app-shell { display:block; }.sidebar { position:fixed; left:-290px; width:274px; transition:left .2s; box-shadow:20px 0 60px #000b; }.sidebar.open { left:0; }.mobile-menu { display:block; }.topbar { padding:0 14px; }.global-search { display:none; }.breadcrumbs { flex:1; }.profile-button>span:last-child { display:none; }.content { padding:22px 16px 50px; }.page-head { display:block; }.page-actions { margin-top:16px; }.metrics-grid,.domain-grid,.model-grid { grid-template-columns:1fr; }.data-table { display:block; overflow:auto; }.doc-layout { grid-template-columns:1fr; } }
@media (max-width:1200px) { .list-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }.list-controls button { width:100%; } }
@media (max-width:650px) { .list-controls,.advanced-filters>div { grid-template-columns:1fr; }.list-summary { align-items:flex-start; flex-direction:column; }.pagination { justify-content:space-between; }.pagination span { min-width:0; }.admin-mode-button { width:36px; overflow:hidden; color:transparent; }.admin-mode-button::after { content:"⋯"; color:var(--ui-text); } }

/* Shared Telegram-inspired day/night palette. */
:root { --bg:var(--ui-bg); --panel:var(--ui-panel); --panel2:var(--ui-panel-raised); --line:var(--ui-line); --muted:var(--ui-muted); --text:var(--ui-text); --cyan:var(--ui-accent); --cyan2:var(--ui-accent); }
html,body { background:var(--ui-bg); color:var(--ui-text); }
.sidebar { background:var(--ui-sidebar); }
.topbar { background:var(--ui-header); }
.workspace-switcher button:hover,.icon-button:hover,.profile-button:hover,.row-actions button { background:var(--ui-panel-soft); }
.nav-dashboard:hover,.nav-entity:hover,.nav-entity.active,.nav-dashboard.active { background:var(--ui-accent-soft); color:var(--ui-accent); }
.workspace-avatar,.profile-avatar,.empty-icon { background:var(--ui-accent-soft); color:var(--ui-accent); }
.global-search,.toolbar-search,.domain-card,.model-card,.doc-card,.data-table,.empty-state { background:var(--ui-panel); }
.metric-card,.panel-card { background:var(--ui-panel); box-shadow:var(--ui-shadow); }
.data-table th { background:var(--ui-panel-soft); color:var(--ui-muted); }
.data-table tr:hover td { background:var(--ui-panel-soft); }
.auth-dialog,.action-dialog { border-color:var(--ui-line-strong); background:var(--ui-panel-raised); box-shadow:var(--ui-shadow); }
.auth-dialog::backdrop,.action-dialog::backdrop { background:var(--ui-backdrop); }
.auth-dialog input,.dialog-form input,.dialog-form select,.dialog-form textarea { border-color:var(--ui-line-strong); background:var(--ui-input); color:var(--ui-text); }
button.primary,.button.primary { border-color:var(--ui-accent); background:var(--ui-accent); color:var(--ui-accent-text); }
.secondary { border-color:var(--ui-line-strong); background:var(--ui-panel-soft); }
.code-block { border-color:var(--ui-line); background:var(--ui-panel-soft); color:var(--ui-text); }
.toast { border-color:var(--ui-line-strong); background:var(--ui-panel-raised); box-shadow:var(--ui-shadow); }
