:root{--ink:#1c1c1c;--ink-2:#3d3a40;--grey:#858387;--grey-2:#a9a6ad;--lav:#c9bdd4;--tint:#e6e0ee;--light:#f3f0f7;--plum:#9b86b0;--plum-strong:#8a74a0;--white:#fff;--ok:#2e7d32;--ok-bg:#e3efe4;--warn:#a4782d;--warn-bg:#f7ecd9;--bad:#b03a2e;--bad-bg:#f8e3e1;--blue:#355368;--blue-bg:#e1e9f0;--separator:#3c3c431f;--fill-tertiary:#7676801f;--fill-quaternary:#7676800f;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Inter, system-ui, "Segoe UI", sans-serif;--font-wordmark:Montserrat, "Helvetica Neue", Arial, sans-serif;--r-card:22px;--r-control:10px;--r-pill:999px;--shadow-card:0 8px 28px #1f17290f;--shadow-float:0 10px 30px #1f172914;--shadow-modal:0 24px 60px #1f172933;--glass-bg:#ffffff47;--glass-border:#fff9;--glass-blur:blur(28px) saturate(180%);--glass-highlight:inset 0 1px 0 #ffffffbf, inset 0 -1px 0 #ffffff40;--material-bg:#ffffff9e;--material-border:#ffffffd9;--material-blur:blur(24px) saturate(160%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);letter-spacing:-.005em;color:var(--ink);-webkit-font-smoothing:antialiased;background-color:#f6f3fa;background-image:radial-gradient(42% 30% at 10% 6%,#c9bdd4f2,#c9bdd400 100%),radial-gradient(38% 28% at 95% 12%,#9b86b061,#9b86b000 100%),radial-gradient(50% 35% at 78% 98%,#e6e0ee,#e6e0ee00 100%),radial-gradient(32% 30% at 22% 70%,#c9bdd499,#c9bdd400 100%);background-attachment:fixed;margin:0;font-size:15px;line-height:1.4}a{color:var(--plum);text-decoration:none}a:hover{color:var(--plum-strong)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4,p{margin:0}.t-large-title{letter-spacing:-.025em;font-size:34px;font-weight:700;line-height:41px}.t-title{letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:28px}.t-headline{letter-spacing:-.015em;font-size:17px;font-weight:600;line-height:22px}.t-body{font-size:15px;line-height:20px}.t-sub{color:var(--grey);font-size:13px;line-height:18px}.t-caption{color:var(--grey);font-size:12px;line-height:16px}.t-mono,.num{font-variant-numeric:tabular-nums}.c-ok{color:var(--ok)}.c-warn{color:var(--warn)}.c-bad{color:var(--bad)}.c-blue{color:var(--blue)}.c-plum{color:var(--plum)}.c-grey{color:var(--grey)}.c-ink2{color:var(--ink-2)}.strong{font-weight:600}.bold{font-weight:700}.wordmark{font-family:var(--font-wordmark);letter-spacing:.22em;color:var(--plum);font-size:15px;font-weight:700}.shell{gap:0;min-height:100%;padding:12px;display:flex}.sidebar{background:var(--glass-bg);border:1px solid var(--glass-border);width:240px;height:calc(100vh - 24px);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-highlight), var(--shadow-float);border-radius:26px;flex-direction:column;flex:0 0 240px;align-self:flex-start;gap:4px;padding:24px 12px 16px;display:flex;position:sticky;top:12px;overflow-y:auto}.sidebar.wide{flex-basis:264px;width:264px}.sidebar-brand{padding:0 12px 14px}.sidebar-brand .t-sub{margin-top:2px}.sidebar-sep{background:var(--separator);height:1px;margin:8px 12px}.sidebar-foot{color:var(--grey);margin-top:auto;padding:12px 12px 0;font-size:12px}.sidebar-foot .live{color:var(--ok);font-weight:600}.sidebar-foot .down{color:var(--bad);font-weight:600}.nav-item{height:40px;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-size:15px;transition:background .15s;display:flex;overflow:hidden}.nav-item:hover{color:var(--ink);background:#ffffff73}.nav-item.active{color:var(--white);background:#9b86b0f2;font-weight:600;box-shadow:0 4px 10px #9b86b059}.nav-item.active svg path{stroke:var(--white)}.nav-item.soon{color:var(--grey)}.nav-item .badge{color:var(--plum);margin-left:auto;font-size:12px;font-weight:600}.nav-item.active .badge{color:var(--white)}.workspace-switcher{-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-highlight);cursor:pointer;text-align:left;background:#ffffff80;border:1px solid #ffffffbf;border-radius:14px;justify-content:space-between;align-items:center;width:100%;margin:0 0 12px;padding:9px 12px;display:flex}.workspace-switcher .name{font-size:14px;font-weight:600}.workspace-switcher .t-caption{display:block}.main{flex:1;min-width:0;padding:24px 36px 48px}.page{flex-direction:column;gap:20px;max-width:1400px;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.page-header .back{color:var(--plum);margin-bottom:8px;font-size:13px;display:inline-block}.page-header .subtitle{color:var(--grey);max-width:720px;margin-top:4px;font-size:14px}.page-header .actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.top{align-items:flex-start}.stack{flex-direction:column;gap:12px;display:flex}.stack.tight{gap:4px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-main-side{grid-template-columns:minmax(0,1fr) 316px;align-items:start;gap:20px;display:grid}.grid-kpi{grid-template-columns:repeat(auto-fill,minmax(220px,248px));gap:12px;display:grid}.spacer{flex:1}.sync-line{color:var(--grey);font-size:12px}.sync-line .dot{background:var(--ok);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.sync-line .dot.bad{background:var(--bad)}.card{background:var(--material-bg);border:1px solid var(--material-border);border-radius:var(--r-card);-webkit-backdrop-filter:var(--material-blur);box-shadow:var(--shadow-card);padding:20px}.card.tint{background:#c9bdd461;border-color:#ffffffb3}.card.flush{padding:0;overflow:hidden}.card-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.card-title{letter-spacing:-.015em;font-size:17px;font-weight:600}.card-subtitle{color:var(--grey);max-width:640px;margin-top:2px;font-size:13px}.card-count{min-width:22px;height:18px;color:var(--plum);vertical-align:2px;background:#9b86b029;border-radius:999px;justify-content:center;align-items:center;margin-left:8px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.inset{background:#ffffff73;border:1px solid #ffffffb3;border-radius:16px;padding:14px 16px}.inset.plum{background:#9b86b01f;border-color:#0000}.inset.warn{background:var(--warn-bg);border-color:#0000}.inset.bad{background:var(--bad-bg);border-color:#0000}.kv{flex-direction:column;display:flex}.kv-row{border-bottom:1px solid var(--separator);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;font-size:14px;display:flex}.kv-row:last-child{border-bottom:0}.kv-row .k{color:var(--grey)}.kv-row .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.table-wrap{background:#ffffffb8;border-radius:16px;overflow-x:auto}table.lg-table{border-collapse:collapse;width:100%;font-size:14px}.lg-table th{text-align:left;color:var(--grey);white-space:nowrap;padding:12px 14px 8px;font-size:12px;font-weight:500}.lg-table td{border-top:1px solid var(--separator);vertical-align:middle;padding:12px 14px}.lg-table tr.clickable{cursor:pointer}.lg-table tr.clickable:hover td{background:#9b86b00d}.lg-table tr.hl td{background:#9b86b014}.lg-table .r{text-align:right}.lg-table .c{text-align:center}.lg-table .sub{color:var(--grey);margin-top:1px;font-size:12px;display:block}.lg-table td.best{background:#e3efe4e6}.lg-table tfoot td{font-weight:600}.btn{border-radius:var(--r-pill);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 18px;font-size:15px;font-weight:600;transition:transform 80ms,box-shadow .15s,background .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{color:var(--white);background:#9b86b0eb;border-color:#ffffff59;box-shadow:inset 0 1px #ffffff59,0 6px 14px #9b86b059}.btn.primary:hover:not(:disabled){background:var(--plum-strong)}.btn.secondary{color:var(--ink);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-highlight), 0 4px 12px #1f17290f;background:#ffffff80;border-color:#ffffffbf}.btn.secondary:hover:not(:disabled){background:#ffffffbf}.btn.ghost{color:var(--plum);background:0 0;height:36px}.btn.ghost:hover:not(:disabled){background:#9b86b01a}.btn.danger{color:var(--bad);background:0 0}.btn.danger:hover:not(:disabled){background:var(--bad-bg)}.btn.sm{height:30px;padding:0 12px;font-size:13px}.btn.block{width:100%}.link-btn{color:var(--plum);cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:0;padding:0}.link-btn:hover{color:var(--plum-strong)}.link-btn.danger{color:var(--bad)}.icon-btn{cursor:pointer;width:30px;height:30px;color:var(--grey);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--fill-tertiary)}.segmented{border-radius:var(--r-pill);background:var(--fill-tertiary);gap:2px;padding:3px;display:inline-flex}.segmented button{border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;height:31px;color:var(--ink);background:0 0;border:0;padding:0 16px;font-size:14px;font-weight:500}.segmented button.on{box-shadow:var(--glass-highlight), 0 3px 8px #1f17291f;background:#fffffff2;font-weight:600}.segmented.sm button{height:26px;padding:0 12px;font-size:13px}.tabs{border-bottom:1px solid var(--separator);gap:24px;display:flex}.tabs a,.tabs button{color:var(--grey);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 0;font-size:14px;font-weight:500}.tabs .on{color:var(--ink);border-bottom-color:var(--plum);font-weight:600}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field-label{color:var(--grey);font-size:12px;font-weight:500}.field .hint{color:var(--grey);font-size:12px}.field .error{color:var(--bad);font-size:12px}.input,.select,.textarea{border-radius:var(--r-control);background:var(--fill-tertiary);border:2px solid #0000;outline:none;width:100%;height:38px;padding:0 12px;font-size:15px;transition:background .15s,border-color .15s}.textarea{resize:vertical;height:auto;min-height:88px;padding:10px 12px;line-height:1.45}.input:focus,.select:focus,.textarea:focus{border-color:var(--plum);background:#ffffffe6}.input::placeholder,.textarea::placeholder{color:var(--grey-2)}.input.sm,.select.sm{height:30px;padding:0 10px;font-size:13px}.input.r{text-align:right}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23858387' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.input-affix{align-items:center;display:flex;position:relative}.input-affix .input{padding-right:64px}.input-affix .affix{color:var(--grey);pointer-events:none;font-size:13px;position:absolute;right:12px}.search{position:relative}.search svg{position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search .input{padding-left:34px}.checkbox{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.checkbox input{width:18px;height:18px;accent-color:var(--plum)}.toggle{background:var(--fill-tertiary);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;width:51px;height:31px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 3px 8px #00000026,0 1px 1px #00000029}.toggle.on{background:var(--plum)}.toggle.on:after{transform:translate(20px)}.toggle:disabled{opacity:.5;cursor:default}.tag{white-space:nowrap;letter-spacing:-.01em;border-radius:999px;align-items:center;gap:6px;height:23px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.tag .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.tag.green{color:var(--ok);background:#e3efe4e6}.tag.amber{color:var(--warn);background:#f7ecd9e6}.tag.red{color:var(--bad);background:#f8e3e1e6}.tag.blue{color:var(--blue);background:#e1e9f0e6}.tag.plum{color:var(--plum-strong);background:#9b86b029}.tag.grey{background:var(--fill-tertiary);color:var(--grey)}.tag.solid-green{background:var(--ok);color:#fff}.tag.solid-amber{background:var(--warn);color:#fff}.tag.select{cursor:pointer;border:0}.chip{background:var(--fill-tertiary);height:24px;color:var(--ink-2);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.chip.on{border-color:var(--plum);color:var(--ink);background:#9b86b02e;font-weight:600}.kpi{flex-direction:column;gap:2px;padding:16px 18px;display:flex}.kpi .label{color:var(--grey);font-size:13px;font-weight:500}.kpi .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:36px}.kpi .sub{color:var(--grey);font-size:12px}.photo{cursor:pointer;background:#e6e0eee6;border:1px solid #fffc;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:48px;padding:0;display:inline-flex;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo.sq{border-radius:9px;width:36px;height:36px}.photos{flex-wrap:wrap;gap:6px;display:flex}.stars{color:var(--plum);gap:2px;display:inline-flex}.stars button{cursor:pointer;color:var(--plum);background:0 0;border:0;padding:0;font-size:26px;line-height:1}.stars .off{color:var(--tint)}.overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#1c1c1c33;justify-content:center;align-items:flex-start;padding:48px 16px;animation:.15s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{-webkit-backdrop-filter:blur(40px)saturate(180%);width:100%;max-width:640px;box-shadow:var(--shadow-modal);background:#fffc;border:1px solid #ffffffd9;border-radius:32px;animation:.2s rise}.modal-head{border-bottom:1px solid var(--separator);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 24px 16px;display:flex}.modal-body{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.modal-foot{border-top:1px solid var(--separator);align-items:center;gap:8px;padding:16px 24px 20px;display:flex}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.dropzone{border:1.5px dashed var(--lav);-webkit-backdrop-filter:blur(20px);cursor:pointer;background:#ffffff80;border-radius:18px;align-items:center;gap:12px;padding:12px 16px;display:flex}.dropzone.over{border-color:var(--plum);background:#9b86b01f}.empty{text-align:center;color:var(--grey);padding:28px;font-size:14px}.error-note{background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:12px 14px;font-size:13px}.notice{background:var(--warn-bg);color:var(--ink-2);border-radius:12px;padding:10px 14px;font-size:13px}.notice b{color:var(--warn)}.spinner{border:2px solid var(--tint);border-top-color:var(--plum);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#fff6,#fffc,#fff6) 0 0/200% 100%;border-radius:12px;animation:1.2s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toasts{z-index:100;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-float);background:#1c1c1cd1;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:500;animation:.2s rise}.toast.bad{background:#b03a2eeb}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{font-family:var(--font)}.legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;font-size:12px;font-weight:500;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:50%;width:10px;height:10px;display:inline-block}.login{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login .card{border-radius:32px;width:400px;padding:32px}@media (width<=1100px){.grid-main-side,.grid-2{grid-template-columns:1fr}}@media (width<=760px){.shell{flex-direction:column;padding:8px}.sidebar,.sidebar.wide{flex-basis:auto;width:100%;height:auto;position:static}.main{padding:16px}.page-header{flex-direction:column}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
