:root{--brand: #0f3d5c;--brand-strong: #0b2a3e;--brand-light: #1b5e86;--brand-soft: #e8f0f5;--brand-ink: #ffffff;--accent: #c8a45c;--accent-strong: #a8853f;--accent-soft: #f7efdd;--accent-ink: #3d2f11;--ground: #eef2f5;--surface: #ffffff;--surface-2: #f6f9fb;--surface-3: #eaf0f4;--surface-inset: #f2f5f8;--line: #d9e2e9;--line-soft: #e8eef2;--line-strong: #bfccd6;--text: #0b1a24;--text-2: #46596a;--text-3: #6e8394;--text-on-dark: #dfe9f0;--text-on-dark-2: #9db2c2;--good: #2e7d5b;--good-soft: #e3f3ec;--warn: #c9820a;--warn-soft: #fbf0d9;--bad: #b3261e;--bad-soft: #fbe6e4;--chart-1: #1f6fa8;--chart-2: #b8862b;--chart-grid: #e3eaef;--info: #1b5e86;--info-soft: #e4eff6;--idle: #6e8394;--idle-soft: #eef2f5;--nav-bg: #0b2a3e;--nav-bg-2: #0f3348;--nav-item: #a9c1d2;--nav-item-hover: #ffffff;--nav-item-active-bg: #17455f;--nav-group: #6f8da3;--nav-line: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 2px rgba(11, 26, 36, .06);--shadow-md: 0 4px 14px rgba(11, 26, 36, .08);--shadow-lg: 0 12px 32px rgba(11, 26, 36, .14);--radius-xs: 4px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font-sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-arabic: "IBM Plex Sans Arabic", "Segoe UI", Tahoma, "Noto Naskh Arabic", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", "Consolas", monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 26px;--header-h: 58px;--nav-w: 252px;--nav-w-collapsed: 72px;color-scheme:light}[data-theme=dark]{--chart-1: #4c9bd8;--chart-2: #b5882e;--chart-grid: #273a49;--brand: #7fb3d5;--brand-strong: #0b141c;--brand-light: #a8cce4;--brand-soft: #17303f;--brand-ink: #0b1a24;--accent: #d9b978;--accent-strong: #e6cd98;--accent-soft: #3a3524;--accent-ink: #f3e6c9;--ground: #0b141c;--surface: #121f2a;--surface-2: #172733;--surface-3: #1d2f3d;--surface-inset: #0f1b24;--line: #273a49;--line-soft: #1d2e3b;--line-strong: #38506180;--text: #dfe9f0;--text-2: #a2b5c3;--text-3: #7b909f;--text-on-dark: #dfe9f0;--text-on-dark-2: #9db2c2;--good: #5fbe93;--good-soft: #163027;--warn: #e0a63c;--warn-soft: #33280f;--bad: #e0736a;--bad-soft: #341a18;--info: #7fb3d5;--info-soft: #14293a;--idle: #7b909f;--idle-soft: #1a2833;--nav-bg: #0d1922;--nav-bg-2: #111f2a;--nav-item: #93aabb;--nav-item-hover: #ffffff;--nav-item-active-bg: #1c394b;--nav-group: #62798a;--nav-line: rgba(255, 255, 255, .06);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 4px 14px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--text-md);background:var(--ground);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html[dir=rtl] body{font-family:var(--font-arabic)}.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.94em}.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}.muted{color:var(--text-3)}.nowrap{white-space:nowrap}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-pill);border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.app-centered{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%}.login-shell{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;background:var(--surface)}.login-brand{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 15% 0%,var(--nav-item-active-bg) 0%,transparent 60%),linear-gradient(155deg,var(--nav-bg) 0%,var(--nav-bg-2) 55%,var(--nav-item-active-bg) 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(32px,5vw,64px);gap:var(--space-6)}.login-brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.055) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(120% 100% at 80% 20%,#000 10%,transparent 75%);mask-image:radial-gradient(120% 100% at 80% 20%,#000 10%,transparent 75%);pointer-events:none}.login-brand>*{position:relative;z-index:1}.login-brand h1{color:#fff;font-size:clamp(30px,4vw,44px);line-height:1.05;letter-spacing:-.01em;margin:0 0 var(--space-3);font-weight:600}.login-brand .lede{color:#cfe0ec;max-width:44ch;font-size:var(--text-lg);line-height:1.6;margin:0}.login-brand .accent-rule{width:64px;height:3px;background:var(--accent);border-radius:var(--radius-pill);margin-bottom:var(--space-5)}.login-wordmark{display:flex;align-items:center;gap:var(--space-3);font-weight:600;letter-spacing:.18em;font-size:var(--text-sm);color:#a9c1d2;text-transform:uppercase}.login-facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);color:#8fb0c7}.login-form-panel{display:flex;align-items:center;justify-content:center;padding:var(--space-6) var(--space-5);background:var(--surface)}.login-form-panel .inner{width:100%;max-width:384px}@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-brand{padding:var(--space-6) var(--space-5);gap:var(--space-4)}.login-facts{display:none}}.app-nav{display:flex;flex-direction:column;height:100vh;position:sticky;inset-block-start:0;border-inline-end:1px solid var(--nav-line);background:var(--nav-bg)}.app-logo{display:flex;align-items:center;gap:var(--space-3);height:var(--header-h);flex:0 0 var(--header-h);padding-inline:var(--space-4);color:#fff;cursor:pointer;white-space:nowrap;overflow:hidden;border-bottom:1px solid var(--nav-line)}.app-logo .mark{flex:0 0 auto;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:var(--text-sm);font-weight:700;letter-spacing:.04em}.app-logo .words{display:flex;flex-direction:column;line-height:1.15;min-width:0}.app-logo .words b{font-weight:600;letter-spacing:.08em;font-size:var(--text-base)}.app-logo .words span{font-size:10px;letter-spacing:.12em;color:var(--text-on-dark-2);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis}.app-nav-scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding-block:var(--space-3) var(--space-5)}.app-nav-foot{flex:0 0 auto;border-top:1px solid var(--nav-line);padding:var(--space-3) var(--space-4);color:var(--text-on-dark-2);font-size:var(--text-xs);font-family:var(--font-mono);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.app-header{display:flex;align-items:center;gap:var(--space-2);height:var(--header-h);padding-inline:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--line)}.app-header .spacer{flex:1 1 auto}.app-header .header-search{max-width:340px;width:100%}@media(max-width:767px){.app-header .header-search{display:none}}.app-content{padding:var(--space-5);min-height:calc(100vh - var(--header-h))}@media(max-width:575px){.app-content{padding:var(--space-4) var(--space-3)}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.page-header .titles{min-width:0}.page-header h1{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0;color:var(--text);text-wrap:balance}.page-header .subtitle{color:var(--text-3);margin:var(--space-1) 0 0;font-size:var(--text-md);max-width:74ch}.page-header .actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.page-crumbs{margin-bottom:var(--space-2);font-size:var(--text-sm)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-4)}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4) var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);min-height:108px;transition:border-color .15s ease,box-shadow .15s ease}.stat-card.is-clickable{cursor:pointer}.stat-card.is-clickable:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.stat-card .cap{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);font-weight:500}.stat-card .value{font-size:var(--text-2xl);font-weight:600;line-height:1.1;letter-spacing:-.015em;font-variant-numeric:tabular-nums;color:var(--text)}.stat-card .value.is-small{font-size:var(--text-lg);font-weight:600}.stat-card .foot{font-size:var(--text-sm);color:var(--text-3);margin-top:auto}.stat-card[data-tone=good]{border-inline-start:3px solid var(--good)}.stat-card[data-tone=warn]{border-inline-start:3px solid var(--warn)}.stat-card[data-tone=bad]{border-inline-start:3px solid var(--bad)}.stat-card[data-tone=brand]{border-inline-start:3px solid var(--accent)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.section-head h2{font-size:var(--text-lg);font-weight:600;margin:0;color:var(--text)}.section-head .hint{font-size:var(--text-sm);color:var(--text-3)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding-bottom:var(--space-4)}.filter-bar .grow{flex:1 1 auto}.price-hidden{color:var(--text-3);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.08em}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding-inline-start:var(--space-6);padding-bottom:var(--space-5)}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";position:absolute;inset-inline-start:7px;inset-block:18px 0;width:2px;background:var(--line)}.timeline li:last-child:before{display:none}.timeline .dot{position:absolute;inset-inline-start:0;inset-block-start:4px;width:16px;height:16px;border-radius:var(--radius-pill);background:var(--surface);border:2px solid var(--line-strong)}.timeline .dot[data-tone=good]{border-color:var(--good);background:var(--good)}.timeline .dot[data-tone=bad]{border-color:var(--bad);background:var(--bad)}.timeline .dot[data-tone=warn]{border-color:var(--warn);background:var(--warn)}.timeline .dot[data-tone=current]{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.timeline .when{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-3)}.timeline .what{font-weight:600;color:var(--text)}.timeline .note{color:var(--text-2);font-size:var(--text-base);margin-top:var(--space-1);background:var(--surface-2);border-inline-start:2px solid var(--line);border-radius:0 var(--radius-xs) var(--radius-xs) 0;padding:var(--space-2) var(--space-3)}.empty-state{text-align:center;padding:var(--space-7) var(--space-4);color:var(--text-3)}.empty-state .glyph{font-size:34px;color:var(--line-strong);margin-bottom:var(--space-3)}.empty-state h3{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:600;color:var(--text-2)}.empty-state p{margin:0 auto var(--space-4);max-width:48ch;font-size:var(--text-base)}.markdown-body{line-height:1.65;word-break:break-word}.markdown-body>*:last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{padding-inline-start:22px;margin-bottom:var(--space-3)}.markdown-table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.markdown-table th,.markdown-table td{border:1px solid var(--line);padding:6px 10px;text-align:start}.markdown-table th{background:var(--surface-3);font-weight:600}.markdown-pre{background:var(--surface-inset);border:1px solid var(--line-soft);padding:var(--space-3);border-radius:var(--radius-sm);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm)}.chat-shell{display:grid;grid-template-columns:268px 1fr;gap:var(--space-4);height:calc(100vh - 150px);min-height:420px}.chat-thread{flex:1 1 auto;overflow-y:auto;padding:var(--space-1) var(--space-1) var(--space-3)}.chat-turn{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.chat-turn.is-user{flex-direction:row-reverse}.chat-bubble{max-width:min(760px,78%);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line-soft)}.chat-turn.is-user .chat-bubble{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.chat-turn.is-user .chat-bubble .ant-typography{color:var(--brand-ink)}@media(max-width:900px){.chat-shell{grid-template-columns:1fr;height:auto}}@media print{.app-nav,.app-header,.page-header .actions,.no-print{display:none!important}.app-content{padding:0}body{background:#fff}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.exec-chart{width:100%;height:auto;display:block;font-family:var(--font-mono, ui-monospace, monospace)}.exec-chart .grid{stroke:var(--chart-grid);stroke-width:1}.exec-chart .axis{fill:var(--text-3);font-size:11px}.exec-chart .bar{stroke:var(--surface);stroke-width:2}.exec-chart .bar.material{fill:var(--chart-1)}.exec-chart .bar.labour{fill:var(--chart-2)}.exec-chart .hit{fill:transparent;cursor:pointer}.exec-chart .hit:hover+.col-highlight,.exec-chart .col-highlight.on{fill:var(--surface-3)}.exec-legend{display:flex;gap:18px;align-items:center;font-size:12px;color:var(--text-2);margin:8px 0 0}.exec-legend .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline-end:6px;vertical-align:-1px}.exec-legend .material .swatch{background:var(--chart-1)}.exec-legend .labour .swatch{background:var(--chart-2)}.exec-tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:12px;box-shadow:0 4px 14px #0000001f;min-width:160px;z-index:5}.exec-tip .row{display:flex;justify-content:space-between;gap:12px}.exec-tip .row+.row{margin-top:2px}.exec-tip b{font-variant-numeric:tabular-nums}.attention-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.attention-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}.attention-item:hover{border-color:var(--brand-light)}.attention-item .n{font-family:var(--font-mono, ui-monospace, monospace);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.attention-item.bad .n{color:var(--bad)}.attention-item.warn .n{color:var(--warn)}.attention-item.zero{opacity:.55;cursor:default}.inbox{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.inbox-item{display:grid;grid-template-columns:34px 1fr auto 16px;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.inbox-item:hover,.inbox-item:focus-visible{border-color:var(--brand-light);box-shadow:var(--shadow-sm);transform:translateY(-1px);outline:none}.inbox-item .icon{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-size:16px}.inbox-item.warn .icon{background:var(--warn-soft);color:var(--warn)}.inbox-item.bad .icon{background:var(--bad-soft);color:var(--bad)}.inbox-item .label{font-weight:500;color:var(--text);line-height:1.25}.inbox-item .count{font-family:var(--font-mono);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.inbox-item.warn .count{color:var(--warn)}.inbox-item.bad .count{color:var(--bad)}.inbox-item .go{color:var(--text-3)}[dir=rtl] .inbox-item .go{transform:scaleX(-1)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.project-card{border:1px solid var(--line);border-inline-start:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.project-card:hover,.project-card:focus-visible{box-shadow:var(--shadow-sm);transform:translateY(-1px);outline:none}.project-card .head{display:flex;justify-content:space-between;align-items:center;gap:8px}.project-card .code{font-size:12px;color:var(--text-3)}.project-card .name{font-weight:600;color:var(--text);line-height:1.3}.project-card .client{font-size:12px;color:var(--text-3)}.project-card .ant-progress{margin:2px 0 0}.project-card .facts{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text-2)}.project-card .facts b{color:var(--text);font-weight:600}.project-card .facts .text-bad,.project-card .facts .text-bad b{color:var(--bad)}.activity{display:flex;flex-direction:column}.activity-item{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.activity-item:last-child{border-bottom:0}.activity-item .dot{width:8px;height:8px;border-radius:50%;background:var(--line-strong);align-self:center}.activity-item .dot.created{background:var(--good)}.activity-item .dot.updated{background:var(--brand-light)}.activity-item .dot.deleted{background:var(--bad)}.activity-item .text{color:var(--text-2)}.activity-item .text b{color:var(--text);font-weight:600}.activity-item .time{font-family:var(--font-mono);font-size:11px;color:var(--text-3);white-space:nowrap}.text-bad{color:var(--bad)}.stat-card .value{transition:color .2s ease}.stat-card.is-clickable:hover .value{color:var(--brand)}.stat-card[data-tone=bad] .value{color:var(--bad)}.stat-card[data-tone=warn] .value{color:var(--warn)}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:var(--surface-2)!important}.ant-card{transition:box-shadow .15s ease}.page-header .subtitle{max-width:72ch}.list-row.is-selected{box-shadow:inset 3px 0 0 var(--accent)}[dir=rtl] .list-row.is-selected{box-shadow:inset -3px 0 0 var(--accent)}.timeline.upcoming li{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:2px;padding-bottom:var(--space-4)}.timeline.upcoming li:hover .what{color:var(--brand-light)}.timeline.upcoming .when{flex:0 0 auto;min-width:84px}.timeline.upcoming .what{flex:1 1 200px;font-size:13px}.timeline.upcoming .tag{font-family:var(--font-mono);font-size:11px;color:var(--text-3);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--radius-xs);padding:1px 6px}.app-logo img.mark.logo{width:auto;max-width:120px;height:32px;object-fit:contain;background:transparent;padding:0;border-radius:0}.logo-preview{width:96px;height:64px;border:1px dashed var(--line);border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface-2);overflow:hidden}.logo-preview img{max-width:88px;max-height:56px;object-fit:contain}.logo-preview .mark{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:13px}.module-list{display:flex;flex-direction:column}.module-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.module-row:last-child{border-bottom:0}.module-row .icon{font-size:15px}.module-row.on .icon{color:var(--good)}.module-row.off{color:var(--text-3)}.module-row.off .icon{color:var(--idle)}.module-row .state{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.module-row.on .state{color:var(--good)}
