.app.moc-v2{--glass-blur: 28px;--glass-opacity: .34;--card-opacity: .56;--env-dim: .08;--v2-obsidian: #18181b;--v2-obsidian-hover: #27272a;--v2-emerald: #10b981;--v2-emerald-deep: #0c7459;--v2-coral: #f05a36;--v2-warm-paper: rgba(255, 255, 255, .84);--v2-soft: rgba(24, 24, 27, .06);--v2-shell: rgba(246, 241, 235, .55);--canvas: #231f1b;--card: rgba(255, 255, 255, .74);--ink: #18181b;--ink-soft: #3f3f46;--muted: #69635d;--line: rgba(24, 24, 27, .09);--sky: #0d9488;--sky-bg: rgba(16, 185, 129, .14);--sky-text: #0f766e;--indigo: #18181b;--indigo-bg: rgba(24, 24, 27, .075);--indigo-text: #18181b;--indigo-border: rgba(24, 24, 27, .15);--emerald: #10b981;--emerald-bg: rgba(16, 185, 129, .16);--emerald-text: #065f46;--emerald-border: rgba(16, 185, 129, .34);--amber: #f59e0b;--amber-bg: rgba(245, 158, 11, .16);--amber-text: #92400e;--amber-border: rgba(245, 158, 11, .36);--amber-50: rgba(245, 158, 11, .12);--crimson: #e11d48;--crimson-bg: rgba(225, 29, 72, .12);--crimson-text: #be123c;--slate: #52525b;--slate-50: rgba(255, 255, 255, .58);--slate-100: rgba(24, 24, 27, .055);--slate-200: rgba(24, 24, 27, .1);--slate-300: rgba(24, 24, 27, .22);--row-hl: rgba(16, 185, 129, .14);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--shadow-card: 0 10px 28px -8px rgba(24, 20, 16, .1), inset 0 1px .5px rgba(255, 255, 255, .85);--shadow-pop: 0 18px 38px -10px rgba(20, 16, 12, .18), inset 0 1.5px 1px rgba(255, 255, 255, .95);--shadow-modal: 0 32px 80px -12px rgba(15, 12, 9, .38);display:block;position:relative;height:100dvh;min-height:0;padding:12px 16px 10px;overflow:hidden;background:var(--canvas);color:var(--ink);font-size:14px}.moc-v2,.moc-v2 *,.moc-v2 *:before,.moc-v2 *:after{box-sizing:border-box;font-synthesis-weight:none}.moc-v2 :is(button,input,select,textarea){font-family:inherit}.moc-v2 .spatial-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:#27221d;pointer-events:none}.moc-v2 .spatial-bg-img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.03);transition:transform .8s cubic-bezier(.16,1,.3,1),filter .5s ease}.moc-v2 .spatial-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 42%,#fff8ee0d,rgba(24,20,16,var(--env-dim)));transition:background .4s ease}.moc-v2 .v2-window{position:relative;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;background:transparent;box-shadow:none;overflow:visible}.moc-v2 .topbar.spatial-pill-bar{position:relative;top:auto;z-index:30;flex-shrink:0;margin:0;padding:9px 18px;min-height:58px;display:flex;align-items:center;gap:14px;border-radius:999px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid rgba(255,255,255,.52);box-shadow:0 14px 34px -8px #120e0a47,inset 0 1px 1px #ffffffb8}.moc-v2 .topbar.spatial-pill-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ece4dbb8,#dacec29e);backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%)}.moc-v2 .v2-brand-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.moc-v2 .v2-brand{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--ink);padding:2px 4px;border-radius:999px;cursor:pointer}.moc-v2 .v2-logo{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--v2-obsidian);color:#fff;font-family:var(--font-display);font-size:18px;font-weight:700;font-synthesis:none;letter-spacing:-.02em;box-shadow:0 4px 12px #18181b47,inset 0 1px 1px #ffffff47}.moc-v2 .v2-brand strong{font-family:var(--font-display);font-size:20px;font-weight:700;font-synthesis:none;letter-spacing:-.02em;color:var(--v2-obsidian)}.moc-v2 .v2-brand small{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--emerald-text);background:#10b98129;border:1px solid rgba(16,185,129,.3);padding:2px 7px;border-radius:999px}.moc-v2 .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-width:34px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:#ffffff85;color:var(--ink-soft);box-shadow:0 2px 6px #120e0a0f;transition:background .18s ease,color .18s ease,transform .18s ease}.moc-v2 .icon-btn:hover:not(:disabled){background:#ffffffe6;color:var(--v2-obsidian)}.moc-v2 .v2-sidebar-toggle{background:#ffffffb8;color:var(--v2-obsidian)}.moc-v2 .v2-turn,.moc-v2 .v2-up{display:inline-flex;transform:rotate(180deg)}@keyframes orbPulse{0%,to{transform:scale(1) rotate(0);filter:hue-rotate(0deg)}50%{transform:scale(1.08) rotate(180deg);filter:hue-rotate(25deg)}}.moc-v2 .siri-orb{width:18px;height:18px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 30% 30%,#a5b4fc,#c084fc 45%,#f43f5e 80%,#3b82f6);box-shadow:0 0 12px #a855f78c,inset 0 0 5px #ffffffd9;animation:orbPulse 5s ease-in-out infinite}.moc-v2 .searchbox{flex:1;min-width:0;max-width:460px;height:38px;min-height:38px;padding:0 14px 0 10px;border-radius:999px;background:#ffffffa8;border:1px solid rgba(255,255,255,.78);box-shadow:inset 0 1px 2px #120e0a0d;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.moc-v2 .searchbox .material-symbols-outlined{font-size:18px;color:var(--muted)}.moc-v2 .searchbox input{width:100%;min-width:0;height:100%;padding:0 4px;border:0;box-shadow:none;background:transparent;color:var(--ink);font-size:12.5px;font-weight:500}.moc-v2 .searchbox input::placeholder{color:#716b64}.moc-v2 .searchbox input:focus{outline:0;box-shadow:none}.moc-v2 .searchbox:focus-within{background:#ffffffeb;border-color:#18181b47;box-shadow:0 0 0 3px #10b98133;outline:0}.moc-v2 .top-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.moc-v2 .spatial-tuner-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.65);background:#ffffff8f;color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 2px 6px #120e0a0f;transition:background .18s ease,transform .18s ease}.moc-v2 .spatial-tuner-btn:hover{background:#ffffffeb}.moc-v2 .v2-account{display:inline-flex;align-items:center;gap:8px;height:36px;padding:3px 10px 3px 4px;border-radius:999px;border:1px solid rgba(255,255,255,.68);background:#fff9;color:var(--ink);text-align:left;cursor:pointer;transition:background .18s ease}.moc-v2 .v2-account:hover{background:#ffffffeb}.moc-v2 .v2-account .user-avatar{width:28px;height:28px;font-size:11px;font-weight:700;background:var(--v2-obsidian);color:#fff;border:0}.moc-v2 .v2-account .user-avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.moc-v2 .card .user-avatar-lg{width:96px;height:96px;font-size:30px;background:var(--v2-obsidian);color:#fff}.moc-v2 .user-meta{display:flex;flex-direction:column;min-width:0}.moc-v2 .user-name{font-size:12px;font-weight:700;line-height:1.2;color:var(--ink);max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.moc-v2 .user-role{display:none}.moc-v2 .user-role-pill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:#18181b14;color:var(--ink-soft)}.moc-v2 .search-results{width:min(500px,calc(100vw - 36px));max-height:60dvh;overflow:auto;background:#fcf9f5f0;backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);border:1px solid rgba(255,255,255,.82);border-radius:20px;box-shadow:0 24px 54px -12px #0f0c094d;color:var(--ink)}.moc-v2 .search-item:hover{background:#10b9811f}.moc-v2 .notif-panel{width:min(390px,calc(100vw - 28px));max-height:75dvh;overflow:auto;background:#fcf9f5f2;backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);border:1px solid rgba(255,255,255,.84);border-radius:22px;box-shadow:0 26px 60px -12px #0f0c0957}.moc-v2 .notif-item.unread{background:#10b9811a}.moc-v2 .bell-ring,.moc-v2 .unread-dot,.moc-v2 .badge.warn,.moc-v2 .badge.err{animation:none}.moc-v2 .v2-release-slot{flex-shrink:0}.moc-v2 .v2-release-slot:empty{display:none}.moc-v2 .release-banner{border-radius:18px;margin:0;background:#faf6f0db;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.72);color:var(--ink);box-shadow:0 10px 26px -8px #120e0a33}.moc-v2 .release-banner.important{background:#fef3c7e6;border-color:#f59e0b73;color:#78350f}.moc-v2 .release-banner-icon{background:#18181b14;color:var(--v2-obsidian)}.moc-v2 .v2-preference-error{font-size:12.5px;color:var(--crimson-text);background:#fff1f2eb;border:1px solid rgba(225,29,72,.28);border-radius:16px;padding:8px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.moc-v2 .v2-workspace{flex:1;min-height:0;display:grid;grid-template-columns:78px 188px minmax(0,1fr);overflow:clip;transition:grid-template-columns .38s cubic-bezier(.22,1,.36,1)}.moc-v2 .v2-workspace.sidebar-collapsed{grid-template-columns:78px 0px minmax(0,1fr)}.moc-v2 .v2-module-rail{min-height:0;min-width:0;width:68px;margin-right:10px;position:relative;overflow:clip;padding:10px 0;border-radius:26px;background:linear-gradient(160deg,#26221ec2,#161412ad);backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);border:1px solid rgba(255,255,255,.22);box-shadow:0 20px 44px -10px #0c0a0861,inset 0 1px 1px #ffffff40}.moc-v2 .v2-module-scroll{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;scroll-padding:4px}.moc-v2 .v2-module-scroll::-webkit-scrollbar{width:0}.moc-v2 .v2-module-list{position:relative;display:flex;flex-direction:column;gap:5px;align-items:center;min-height:100%;padding:3px 5px}.moc-v2 .v2-module-marker{position:absolute;top:0;left:0;width:58px;height:61px;transform-origin:0 0;pointer-events:none;background:#fff;border-radius:16px;box-shadow:0 8px 18px #0000003d,inset 0 1px #fffffff2}.moc-v2 .v2-module-marker.ready{transition:transform .44s cubic-bezier(.2,.85,.2,1)}.moc-v2 .v2-module-button{position:relative;flex-shrink:0;width:58px;min-height:61px;padding:7px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;border-radius:16px;color:#ffffffd1;font:inherit;font-size:10.5px;font-weight:500;line-height:1.28;text-align:center;cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;transition:color .18s ease,background .18s ease}.moc-v2 .v2-module-button .material-symbols-outlined{font-size:20px}.moc-v2 .v2-module-button:hover{background:#ffffff1f;color:#fff}.moc-v2 .v2-module-button[aria-pressed=true]{color:var(--v2-obsidian);font-weight:700}.moc-v2 .v2-module-button[aria-pressed=true]:hover{background:transparent}.moc-v2 .v2-module-button[aria-pressed=true]>.material-symbols-outlined{animation:v2ModulePop .42s ease-out}.moc-v2 .v2-module-button.dragging{opacity:.4}.moc-v2 .v2-module-button.drop-target{outline:2px dashed rgba(255,255,255,.85);outline-offset:-3px}.moc-v2 .v2-context{display:flex;flex-direction:column;min-width:0;min-height:0;margin-right:10px;padding:12px 10px;overflow:clip;border-radius:26px;background:linear-gradient(155deg,rgba(244,238,230,calc(var(--glass-opacity) + .18)),rgba(228,218,206,calc(var(--glass-opacity) + .08)));backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);border:1px solid rgba(255,255,255,.56);box-shadow:0 18px 42px -12px #0f0c093d,inset 0 1px 1px #ffffffb8;opacity:1;transition:opacity .22s ease,transform .36s ease}.moc-v2 .v2-context.collapsed{opacity:0;margin-right:0;padding-left:0;padding-right:0;border-width:0;transform:translate(-16px);pointer-events:none}.moc-v2 .v2-context-title{padding:6px 6px 10px;margin-bottom:4px;border-bottom:1px solid rgba(24,24,27,.07);flex-shrink:0}.moc-v2 .v2-context-title h2{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--v2-obsidian);margin:0}.moc-v2 .v2-context-items{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(24,24,27,.2) transparent;padding:4px 2px 8px}.moc-v2 .v2-context-link{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;margin:2px 0;border-radius:14px;color:var(--ink-soft);font-size:12.5px;font-weight:500;line-height:1.45;text-decoration:none;animation:v2MenuEnter .36s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--item-index, 0) * 32ms);transition:background .16s ease,color .16s ease,box-shadow .16s ease}.moc-v2 .v2-context-link .material-symbols-outlined{font-size:18px;flex-shrink:0;color:#52525b}.moc-v2 .v2-context-link:hover{background:#ffffff8f;color:var(--v2-obsidian);text-decoration:none}.moc-v2 .v2-context-link.active{background:#ffffffeb;color:var(--v2-obsidian);font-weight:700;box-shadow:0 4px 14px #120e0a14,inset 0 1px #fff}.moc-v2 .v2-context-link.active .material-symbols-outlined{color:var(--v2-emerald-deep)}.moc-v2 .v2-identity{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;flex-shrink:0;margin-top:8px;padding:9px;border-radius:16px;background:#ffffffb8;border:1px solid rgba(255,255,255,.82);box-shadow:0 4px 12px #120e0a0d}.moc-v2 .v2-identity-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:10px;background:#10b98129;color:var(--v2-emerald-deep)}.moc-v2 .v2-identity-icon .material-symbols-outlined{font-size:17px}.moc-v2 .v2-role,.moc-v2 .v2-scope{display:block;font-size:11px;line-height:1.38;overflow-wrap:anywhere}.moc-v2 .v2-role{font-weight:700;color:var(--v2-obsidian)}.moc-v2 .v2-scope{color:var(--muted);margin-top:1px}.moc-v2 .v2-content-shell.spatial-window{position:relative;min-height:0;overflow:clip;display:flex;flex-direction:column;border-radius:30px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid rgba(255,255,255,.56);box-shadow:0 32px 80px -16px #0f0c0957,0 4px 24px -4px #0f0c0924}.moc-v2 .v2-content-shell.spatial-window:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(246,240,233,calc(var(--glass-opacity) + .18)),rgba(232,223,212,calc(var(--glass-opacity) + .08)) 55%,rgba(240,232,223,calc(var(--glass-opacity) + .12)));backdrop-filter:blur(var(--glass-blur)) saturate(145%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(145%);box-shadow:inset 0 1.5px 1px #ffffffc7,inset 0 -1px 1px #ffffff47}.moc-v2 .spatial-specular-edge{position:absolute;top:0;left:32px;right:32px;height:1px;z-index:2;background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent);pointer-events:none}.moc-v2 .main{position:relative;flex:1;min-height:0;max-width:none;width:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(24,24,27,.22) transparent;margin:0;padding:22px 26px 80px;scroll-padding:18px}.moc-v2 .spatial-home-bar{width:128px;height:4px;border-radius:999px;background:#ffffff85;box-shadow:0 2px 8px #0003;margin:-3px auto 0;flex-shrink:0}@keyframes spatialUnblurIn{0%{opacity:0;filter:blur(12px);transform:translateY(10px) scale(.985)}65%{opacity:.92;filter:blur(2px)}to{opacity:1;filter:none;transform:none}}.moc-v2 .page-enter{min-width:0;animation:spatialUnblurIn .42s cubic-bezier(.16,1,.3,1)}.moc-v2 .page-head{align-items:center;margin-bottom:20px}.moc-v2 .page-title{font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1.28;color:var(--v2-obsidian);letter-spacing:-.02em}.moc-v2 .page-sub{font-size:13px;font-weight:500;line-height:1.6;color:var(--muted)}.moc-v2 a{color:var(--v2-emerald-deep)}.moc-v2 .linklike,.moc-v2 .link-btn{color:var(--v2-emerald-deep);font-weight:600}.moc-v2 .card{min-width:0;background:linear-gradient(160deg,rgba(255,255,255,calc(var(--card-opacity) + .22)),rgba(252,249,245,calc(var(--card-opacity) + .1)));backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid rgba(255,255,255,.72);border-radius:24px;box-shadow:0 10px 28px -8px #18141017,inset 0 1px .5px #ffffffe0;transition:box-shadow .28s ease,border-color .28s ease,background .28s ease}.moc-v2 .card:hover{border-color:#ffffffe6;box-shadow:0 16px 34px -10px #14100c24,inset 0 1.5px 1px #fffffff0}.moc-v2 .card-head,.moc-v2 .progress-head{flex-wrap:wrap;gap:6px 10px;min-width:0}.moc-v2 .card-head>*,.moc-v2 .progress-head>*,.moc-v2 .kpi-link{min-width:0}.moc-v2 .card.kpi,.moc-v2 .kpi-link,.moc-v2 .work-card{transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}.moc-v2 .card.kpi:hover,.moc-v2 .kpi-link:hover,.moc-v2 .work-card:hover{transform:translateY(-4px)}.moc-v2 .glass-card-emerald,.moc-v2 .kpi-grid>.card.kpi:first-child,.moc-v2 .exec-kpi-grid>.kpi-link:first-child .card.kpi,.moc-v2 .exec-kpi-grid>.card.kpi:first-child{background:linear-gradient(145deg,#139a76eb,#0c7459f2);border:1px solid rgba(167,243,208,.5);box-shadow:0 16px 34px -8px #0d785c5c,inset 0 1px 1px #ffffff73;color:#fff}.moc-v2 .glass-card-emerald .kpi-label,.moc-v2 .kpi-grid>.card.kpi:first-child .kpi-label,.moc-v2 .exec-kpi-grid>.kpi-link:first-child .card.kpi .kpi-label,.moc-v2 .exec-kpi-grid>.card.kpi:first-child .kpi-label{color:#ecfdf5e0}.moc-v2 .glass-card-emerald .kpi-value,.moc-v2 .kpi-grid>.card.kpi:first-child .kpi-value,.moc-v2 .exec-kpi-grid>.kpi-link:first-child .card.kpi .kpi-value,.moc-v2 .exec-kpi-grid>.card.kpi:first-child .kpi-value{color:#fff}.moc-v2 .glass-card-emerald .kpi-sub,.moc-v2 .glass-card-emerald .kpi-go,.moc-v2 .kpi-grid>.card.kpi:first-child .kpi-sub,.moc-v2 .exec-kpi-grid>.kpi-link:first-child .card.kpi .kpi-sub,.moc-v2 .exec-kpi-grid>.kpi-link:first-child .card.kpi .kpi-go,.moc-v2 .exec-kpi-grid>.card.kpi:first-child .kpi-sub{color:#d1fae5db}.moc-v2 .glass-card-emerald .kpi-icon,.moc-v2 .kpi-grid>.card.kpi:first-child .kpi-icon,.moc-v2 .exec-kpi-grid>.kpi-link:first-child .card.kpi .kpi-icon,.moc-v2 .exec-kpi-grid>.card.kpi:first-child .kpi-icon{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.moc-v2 .kpi-icon{width:42px;height:42px;border-radius:14px;background:var(--kpi-bg, rgba(24, 24, 27, .07));color:var(--kpi-accent, var(--v2-obsidian))}.moc-v2 .kpi-value{font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:-.025em;color:var(--v2-obsidian)}.moc-v2 .spatial-dark-node{background:linear-gradient(145deg,#1c1c20f0,#121215f5);color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:18px 20px;box-shadow:0 16px 32px -10px #00000057;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;gap:10px;transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s ease}.moc-v2 .spatial-dark-node:hover{transform:translateY(-3px);text-decoration:none;color:#fff;box-shadow:0 22px 40px -10px #0000006b}.moc-v2 .spatial-emerald-node{background:linear-gradient(145deg,#139a76eb,#0c7459f5);color:#fff;border:1px solid rgba(167,243,208,.45);border-radius:22px;padding:18px 20px;box-shadow:0 16px 32px -10px #0d785c57;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;gap:10px;transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s ease}.moc-v2 .spatial-emerald-node:hover{transform:translateY(-3px);text-decoration:none;color:#fff;box-shadow:0 22px 40px -10px #0d785c75}.moc-v2 .kpi-mini,.moc-v2 .zone-item,.moc-v2 .persp,.moc-v2 .comment,.moc-v2 .aud-field,.moc-v2 .v2-order-list li{background:#ffffffad;border:1px solid rgba(255,255,255,.82);border-radius:16px;box-shadow:0 4px 12px #120e0a0a,inset 0 1px #ffffffeb;transition:background .2s ease,transform .2s ease,border-color .2s ease}.moc-v2 .zone-item:hover,.moc-v2 .kpi-mini:hover{background:#ffffffe0;border-color:#fffffff5}.moc-v2 .zone-head .material-symbols-outlined{color:var(--v2-emerald-deep)}.moc-v2 .btn{min-height:36px;height:auto;padding:7px 15px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:normal;line-height:1.4;background:#ffffffc7;border:1px solid rgba(255,255,255,.86);color:var(--v2-obsidian);box-shadow:0 2px 8px #120e0a0f,inset 0 1px #ffffffe6;transition:background .18s ease,transform .16s ease,box-shadow .18s ease}.moc-v2 .btn:hover:not(:disabled){background:#fff;box-shadow:0 6px 16px #120e0a1a}.moc-v2 .btn.primary{background:var(--v2-obsidian);border-color:var(--v2-obsidian);color:#fff;border-radius:999px;box-shadow:0 8px 20px -4px #18181b59}.moc-v2 .btn.primary:hover:not(:disabled){background:var(--v2-obsidian-hover);box-shadow:0 12px 24px -4px #18181b75;transform:translateY(-1px);filter:none}.moc-v2 .btn.accent{background:linear-gradient(135deg,#10b981,#0c7459);border-color:#a7f3d066;color:#fff;border-radius:999px;box-shadow:0 8px 20px -4px #10b98159}.moc-v2 .btn.accent:hover:not(:disabled){box-shadow:0 12px 24px -4px #10b98173;transform:translateY(-1px)}.moc-v2 .btn.danger{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:0 6px 16px -4px #dc262659}.moc-v2 .btn.ghost-dark{background:transparent;border-color:transparent;box-shadow:none}.moc-v2 .btn.ghost-dark:hover:not(:disabled){background:#18181b12}.moc-v2 .btn.sm,.moc-v2 .btn.small{min-height:30px;padding:5px 12px;font-size:12px}.moc-v2 .badge,.moc-v2 .pill{text-transform:none;letter-spacing:0;border-radius:999px;font-weight:600;padding:0 9px}.moc-v2 .spatial-status-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;background:#ffffffb8;border:1px solid rgba(255,255,255,.88);font-size:11.5px;font-weight:700;color:var(--emerald-text);box-shadow:0 2px 8px #120e0a0d}.moc-v2 .spatial-status-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px #10b98138}.moc-v2 .home-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.moc-v2 .home-col{gap:18px}.moc-v2 .home-col .card{margin:0}.moc-v2 .home-col .kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.moc-v2 .v2-home-hero{padding:24px;display:flex;align-items:stretch;justify-content:space-between;gap:18px;min-width:0;border-radius:26px;background:linear-gradient(140deg,#ffffffe0,#f2faf6c2);border:1px solid rgba(255,255,255,.86);box-shadow:0 14px 34px -10px #1018141f,inset 0 1.5px 1px #fffffff2}.moc-v2 .v2-home-hero>div:first-child{flex:1;min-width:0}.moc-v2 .v2-hero-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--v2-emerald-deep);background:#10b98124;padding:3px 10px;border-radius:999px}.moc-v2 .v2-home-hero h2{font:700 24px/1.3 var(--font-display);letter-spacing:-.02em;color:var(--v2-obsidian);margin:10px 0 8px}.moc-v2 .v2-home-hero p{font-size:12.5px;line-height:1.65;color:var(--muted);margin:0 0 14px;max-width:380px}.moc-v2 .v2-hero-capacity{margin:0 0 16px;padding:10px 12px;border-radius:14px;background:#18181b0b;border:1px solid rgba(24,24,27,.06)}.moc-v2 .v2-hero-capacity-head{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.moc-v2 .v2-hero-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.moc-v2 .v2-hero-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:108px;min-height:136px;flex-shrink:0;background:linear-gradient(155deg,#18181b,#27272a);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:14px 10px;box-shadow:0 16px 30px -8px #18181b61}.moc-v2 .v2-hero-art>.material-symbols-outlined{font-size:40px;color:#34d399}.moc-v2 .v2-hero-art>span:last-child{font-size:10px;font-weight:600;text-align:center;line-height:1.35;color:#fffc}.moc-v2 .spatial-QuickNodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.moc-v2 .spatial-insights-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;margin-bottom:20px}.moc-v2 .spatial-insights-grid .card{margin-bottom:0}.moc-v2 .spatial-progress-item{margin-top:12px}.moc-v2 .spatial-progress-item:first-of-type{margin-top:4px}.moc-v2 .spatial-pill-bars{display:flex;align-items:flex-end;gap:10px;height:128px;padding-top:12px}.moc-v2 .spatial-pill-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}.moc-v2 .spatial-pill-track{flex:1;width:100%;max-width:34px;border-radius:999px;background:#18181b0f;display:flex;align-items:flex-end;padding:3px;overflow:hidden}.moc-v2 .spatial-pill-fill{width:100%;height:100%;transform-origin:bottom;border-radius:999px;background:var(--v2-obsidian);transition:transform .55s cubic-bezier(.22,1,.36,1)}.moc-v2 .spatial-pill-fill.emerald{background:linear-gradient(180deg,#34d399,#0d9488)}.moc-v2 .spatial-pill-fill.coral{background:linear-gradient(180deg,#fb7185,#f05a36)}.moc-v2 .spatial-pill-lbl{font-size:10.5px;font-weight:600;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.moc-v2 table,.moc-v2 .table,.moc-v2 .tbl{width:100%;border-collapse:collapse;font-size:13.5px}.moc-v2 table th,.moc-v2 .table th,.moc-v2 .tbl th{background:#f4efe9e0;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:11px 12px;border-bottom:1px solid rgba(24,24,27,.1)}.moc-v2 table td,.moc-v2 .table td,.moc-v2 .tbl td{padding:11px 12px;border-bottom:1px solid rgba(24,24,27,.065);vertical-align:middle}.moc-v2 tbody tr:hover{background:#ffffff9e}.moc-v2 tr.row-warn td{background:#f59e0b21}.moc-v2 tr.row-active td{background:#10b98124}.moc-v2 tr.row-alert td{background:#e11d481c}.moc-v2 .tabular-nums{font-variant-numeric:tabular-nums}.moc-v2 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),.moc-v2 select,.moc-v2 textarea{background:#ffffffd1;border:1px solid rgba(24,24,27,.13);border-radius:12px;color:var(--ink);box-shadow:inset 0 1px 2px #120e0a08;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.moc-v2 input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,.moc-v2 select:focus,.moc-v2 textarea:focus{background:#fff;border-color:var(--v2-obsidian);box-shadow:0 0 0 3px #10b9812e;outline:none}.moc-v2 input:disabled,.moc-v2 select:disabled,.moc-v2 textarea:disabled{background:#18181b0b;color:var(--muted)}.moc-v2 input[type=checkbox],.moc-v2 input[type=radio]{accent-color:var(--v2-obsidian)}.moc-v2 input[type=range]{height:6px;padding:0;border:0;border-radius:999px;background:#18181b24;accent-color:var(--v2-obsidian);cursor:pointer}.moc-v2 .toolbar,.moc-v2 .filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0;margin-bottom:16px;padding:12px 16px;border-radius:20px;background:#ffffffa8;border:1px solid rgba(255,255,255,.78);box-shadow:0 6px 18px -6px #120e0a12}.moc-v2 .toolbar>*,.moc-v2 .filter-bar>*{max-width:100%}.moc-v2 .filter-bar input,.moc-v2 .filter-bar select{width:auto}.moc-v2 .filter-bar input[type=text],.moc-v2 .filter-bar input:not([type]){min-width:200px;flex:1}.moc-v2 .form-inline{min-width:0;flex-wrap:wrap}.moc-v2 .filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#18181b14;border:1px solid rgba(24,24,27,.14);font-size:12.5px;font-weight:600;color:var(--v2-obsidian)}.moc-v2 .tabs,.moc-v2 .org-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;width:fit-content;max-width:100%;margin:0 0 16px;padding:5px;border-radius:999px;background:#ffffff8f;border:1px solid rgba(255,255,255,.76);box-shadow:inset 0 1px 2px #120e0a0d}.moc-v2 .tab,.moc-v2 .org-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:0;border-radius:999px;background:transparent;color:var(--ink-soft);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.moc-v2 .tab:hover,.moc-v2 .org-tab:hover{background:#ffffffbf;color:var(--v2-obsidian)}.moc-v2 .tab.active,.moc-v2 .org-tab.active{background:var(--v2-obsidian);color:#fff;box-shadow:0 4px 12px #18181b40}.moc-v2 .dl,.moc-v2 .kv{display:grid;grid-template-columns:150px minmax(0,1fr);row-gap:9px;column-gap:12px;margin:0;font-size:13.5px}.moc-v2 .dl dt,.moc-v2 .kv>span:nth-child(odd),.moc-v2 .kv dt{color:var(--muted);font-weight:500}.moc-v2 .dl dd,.moc-v2 .kv>strong,.moc-v2 .kv dd{margin:0;font-weight:600;color:var(--ink);min-width:0;overflow-wrap:anywhere}.moc-v2 .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin-bottom:18px}.moc-v2 .detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.moc-v2 .report-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.moc-v2 .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.moc-v2 .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.moc-v2 .grid2>.card{margin-bottom:0}.moc-v2 .fld{margin-bottom:12px}.moc-v2 .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.moc-v2 .check-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;font-size:13.5px;cursor:pointer}.moc-v2 .form-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:14px}.moc-v2 .group-actionbar{background:#faf7f3f0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(24,24,27,.09)}.moc-v2 .b01-bar{height:16px;background:#18181b14;padding:2px}.moc-v2 .b01-seg{border-radius:999px}.moc-v2 .b01-draft,.moc-v2 .b01-sw-draft{background:var(--v2-obsidian)}.moc-v2 .b01-active,.moc-v2 .b01-sw-active{background:var(--v2-emerald)}.moc-v2 .progress-track,.moc-v2 .unit-bar-track{background:#18181b14}.moc-v2 .progress-fill,.moc-v2 .unit-bar-fill{background:linear-gradient(90deg,#10b981,#0c7459)}.moc-v2 .progress-fill.blue{background:linear-gradient(90deg,#18181b,#3f3f46)}.moc-v2 .progress-fill.amber{background:linear-gradient(90deg,#f59e0b,#f05a36)}.moc-v2 .editor-shell,.moc-v2 .preview-frame{background:#ffffffe0;border-color:#ffffffdb;border-radius:22px}.moc-v2 .editor-toolbar{background:#f5f0eaeb;border-bottom-color:#18181b17}.moc-v2 .tbtn.active{background:var(--v2-obsidian);border-color:var(--v2-obsidian);color:#fff}.moc-v2 .slide-backdrop{z-index:120;background:#120f0c6b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.moc-v2 .dialog-backdrop{z-index:130;background:#120f0c6b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.moc-v2 .slide-panel{background:#faf7f2f2;backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%);border:1px solid rgba(255,255,255,.84);border-radius:28px;box-shadow:var(--shadow-modal)}.moc-v2 .slide-foot{background:#f4efe8db}.moc-v2 .dialog{background:#fcf9f5f5;backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%);border:1px solid rgba(255,255,255,.86);border-radius:26px;box-shadow:var(--shadow-modal)}.moc-v2 .v2-order-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;padding:24px;background:#faf6f0f0;backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%);color:var(--ink);border:1px solid rgba(255,255,255,.84);border-radius:28px;box-shadow:var(--shadow-modal)}.moc-v2 .v2-order-dialog::backdrop{background:#120f0c73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.moc-v2 .v2-order-dialog[open]{animation:spatialUnblurIn .32s cubic-bezier(.16,1,.3,1)}.moc-v2 .v2-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.moc-v2 .v2-order-head h2{margin:0;font-size:18px;font-weight:700;color:var(--v2-obsidian)}.moc-v2 .v2-order-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:7px}.moc-v2 .v2-order-list li{display:flex;gap:10px;align-items:center;padding:8px 12px;min-width:0}.moc-v2 .v2-order-list li>span:nth-child(2){flex:1;min-width:0;font-weight:600}.moc-v2 .v2-order-list li>.material-symbols-outlined{color:var(--v2-emerald-deep)}.moc-v2 .v2-order-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:16px}.moc-v2 .spatial-tuner-body{display:flex;flex-direction:column;gap:16px;margin:16px 0 8px}.moc-v2 .spatial-slider-row{padding:12px 14px;border-radius:16px;background:#ffffffa8;border:1px solid rgba(255,255,255,.84)}.moc-v2 .spatial-slider-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:8px}.moc-v2 .spatial-env-picker{padding:12px 14px;border-radius:16px;background:#ffffffa8;border:1px solid rgba(255,255,255,.84)}.moc-v2 .spatial-env-picker-label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:10px}.moc-v2 .spatial-env-pills{display:flex;gap:8px;flex-wrap:wrap}.moc-v2 .spatial-env-pill{flex:1 1 120px;padding:8px 12px;border-radius:999px;border:1px solid rgba(24,24,27,.12);background:#ffffffc7;color:var(--ink-soft);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.moc-v2 .spatial-env-pill:hover{background:#fff;color:var(--v2-obsidian)}.moc-v2 .spatial-env-pill.active{background:var(--v2-obsidian);border-color:var(--v2-obsidian);color:#fff}.moc-v2 .v2-scroll-float{display:grid;place-items:center;position:absolute;bottom:22px;right:24px;width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:var(--v2-obsidian);color:#fff;z-index:12;cursor:pointer;box-shadow:0 10px 26px #0f0c0961;transition:transform .18s ease,background .18s ease}.moc-v2 .v2-scroll-float:hover{transform:translateY(-3px);background:var(--v2-obsidian-hover)}.moc-v2 .v2-scroll-float>span{display:inline-flex;transition:transform .3s ease}.moc-v2 .v2-scroll-float .material-symbols-outlined{font-size:24px}.moc-v2 .spatial-toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%) translateY(18px);opacity:0;pointer-events:none;z-index:90;display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;background:#18181be0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:12.5px;font-weight:600;box-shadow:0 16px 36px #00000059;transition:opacity .26s ease,transform .26s cubic-bezier(.22,1,.36,1)}.moc-v2 .spatial-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.moc-v2 .spatial-toast:empty{display:none}.moc-v2 .spatial-toast-dot{width:8px;height:8px;border-radius:50%;background:#34d399;flex-shrink:0}.moc-v2 .v2-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@keyframes v2ModulePop{0%{transform:scale(.84)}55%{transform:translateY(-2px) scale(1.18)}to{transform:none}}@keyframes v2MenuEnter{0%{opacity:.18;transform:translate(-14px)}to{opacity:1;transform:none}}@media(max-width:1200px){.moc-v2 .v2-workspace{grid-template-columns:76px 160px minmax(0,1fr)}.moc-v2 .v2-workspace.sidebar-collapsed{grid-template-columns:76px 0px minmax(0,1fr)}.moc-v2 .user-meta,.moc-v2 .user-role-pill{display:none}.moc-v2 .v2-account{padding:3px}.moc-v2 .main{padding-left:16px;padding-right:18px}}@media(max-width:1000px){.moc-v2 .home-grid,.moc-v2 .spatial-insights-grid,.moc-v2 .exec-grid-2,.moc-v2 .exec-grid-3{grid-template-columns:minmax(0,1fr)}.moc-v2 .exec-kpi-grid,.moc-v2 .exec-kpi-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-height:520px){.app.moc-v2{padding:6px 10px}.moc-v2 .v2-window{gap:6px}.moc-v2 .topbar.spatial-pill-bar{min-height:48px;padding:6px 14px}.moc-v2 .v2-context{padding:8px}.moc-v2 .v2-identity{margin-top:6px;padding:6px 8px}.moc-v2 .spatial-home-bar{display:none}}@media(max-width:760px){.app.moc-v2{padding:6px}.moc-v2 .v2-window{gap:8px}.moc-v2 .topbar.spatial-pill-bar{flex-wrap:wrap;gap:8px;padding:10px 12px;min-height:0;border-radius:22px}.moc-v2 .v2-brand-group{flex:1;min-width:0;gap:5px}.moc-v2 .v2-brand strong{font-size:19px}.moc-v2 .v2-brand small,.moc-v2 .spatial-btn-label,.moc-v2 .user-meta,.moc-v2 .user-role-pill{display:none}.moc-v2 .spatial-tuner-btn{width:34px;min-width:34px;height:34px;padding:0;justify-content:center}.moc-v2 .searchbox{order:3;flex-basis:100%;max-width:none}.moc-v2 .top-actions{gap:4px}.moc-v2 .v2-account{padding:2px;height:34px}.moc-v2 .v2-workspace,.moc-v2 .v2-workspace.sidebar-collapsed{display:block;overflow:auto;overscroll-behavior:contain;border-radius:22px}.moc-v2 .v2-module-rail{width:auto;padding:0;max-height:172px;margin:0 0 10px;border-radius:20px}.moc-v2 .v2-module-scroll{max-height:172px;height:auto}.moc-v2 .v2-module-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:8px}.moc-v2 .v2-module-button{width:100%;min-width:0;min-height:61px}.moc-v2 .v2-context{height:310px;max-height:310px;padding:12px;margin:0 0 10px;border-radius:20px}.moc-v2 .v2-context.collapsed{height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0;transform:none}.moc-v2 .v2-context-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:4px 6px}.moc-v2 .v2-identity{grid-template-columns:28px minmax(0,1fr)}.moc-v2 .v2-identity>div{display:flex;align-items:center;flex-wrap:wrap;column-gap:8px}.moc-v2 .v2-scope{margin-top:0}.moc-v2 .v2-content-shell.spatial-window{display:block;overflow:visible;border-radius:22px}.moc-v2 .main{overflow:visible;padding:14px 12px 84px}.moc-v2 .page-title{font-size:22px}.moc-v2 .page-head{gap:10px}.moc-v2 .card{padding:16px;border-radius:20px}.moc-v2 .spatial-QuickNodes{grid-template-columns:minmax(0,1fr)}.moc-v2 .dl,.moc-v2 .kv{grid-template-columns:116px minmax(0,1fr)}.moc-v2 .table-wrap{overflow:auto;max-width:100%}.moc-v2 .v2-scroll-float{bottom:16px;right:16px}.moc-v2 .notif-panel{position:fixed;top:72px;left:12px;right:12px;width:auto}.moc-v2 .search-results{left:0;right:0;width:auto}.moc-v2 .v2-release-slot{max-height:30dvh;overflow:auto}.moc-v2 .v2-order-dialog{padding:18px}.moc-v2 .spatial-home-bar{display:none}}@media(max-width:420px){.app.moc-v2{padding:4px}.moc-v2 .topbar.spatial-pill-bar{padding:8px 9px;gap:6px}.moc-v2 .v2-brand-group{gap:3px}.moc-v2 .v2-brand{gap:5px;padding:0}.moc-v2 .v2-logo{width:27px;height:27px;font-size:15px}.moc-v2 .v2-brand strong{font-size:17px}.moc-v2 .top-actions{gap:3px}.moc-v2 .icon-btn,.moc-v2 .spatial-tuner-btn{width:28px;min-width:28px;height:28px}.moc-v2 .icon-btn .material-symbols-outlined{font-size:18px}.moc-v2 .v2-account{height:28px;padding:0;border:0;background:transparent}.moc-v2 .v2-account .user-avatar,.moc-v2 .v2-account .user-avatar-img{width:28px;height:28px}.moc-v2 .v2-home-hero{padding:18px}.moc-v2 .v2-hero-art{display:none}.moc-v2 .card{padding:14px}.moc-v2 .form-grid{grid-template-columns:minmax(0,1fr)!important}.moc-v2 .exec-kpi-grid,.moc-v2 .exec-kpi-4{grid-template-columns:minmax(0,1fr)}.moc-v2 .spatial-pill-bars{gap:5px}.moc-v2 .unit-bar-row{grid-template-columns:minmax(0,108px) minmax(0,1fr) auto;gap:6px}.moc-v2 .dl,.moc-v2 .kv{grid-template-columns:minmax(0,100px) minmax(0,1fr);column-gap:8px}}@media(pointer:coarse){.moc-v2 .btn{min-height:42px}.moc-v2 input:not([type=checkbox]):not([type=radio]):not([type=range]),.moc-v2 select,.moc-v2 textarea{font-size:16px}}@media(prefers-reduced-motion:reduce){.moc-v2 *,.moc-v2 *:before,.moc-v2 *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.app.moc-v2{height:auto;padding:0;overflow:visible;background:#fff}.moc-v2 .spatial-stage,.moc-v2 .v2-topbar,.moc-v2 .v2-module-rail,.moc-v2 .v2-context,.moc-v2 .v2-scroll-float,.moc-v2 .v2-release-slot,.moc-v2 .spatial-home-bar,.moc-v2 .spatial-toast{display:none!important}.moc-v2 .v2-window,.moc-v2 .v2-workspace,.moc-v2 .v2-content-shell.spatial-window,.moc-v2 .main{height:auto;overflow:visible;display:block;box-shadow:none;border:0;background:#fff}.moc-v2 .v2-content-shell.spatial-window:before{display:none}}.login-scene{position:relative;display:block;width:100%;max-width:60vh;aspect-ratio:1;margin-inline:auto;pointer-events:none}.login-scene-poses{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .3s ease}.login-scene-pose{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .18s ease;-webkit-user-select:none;user-select:none}.login-scene-pose[data-active=true]{opacity:1}.login-scene[data-character-state=attentive] .login-scene-poses{transform:translate(3px) rotate(-.5deg)}.login-scene[data-character-state=failure]{animation-play-state:paused}.login-scene[data-character-state=failure] .login-scene-pose{transition:none}.login-scene[data-visible-pose=failure] .login-scene-pose[data-pose=failure]{animation:login-retry-left var(--login-failure-duration) steps(1,end) both}.login-scene[data-visible-pose=failure] .login-scene-pose[data-pose=failure-alternate]{animation:login-retry-right var(--login-failure-duration) steps(1,end) both}@keyframes login-retry-left{0%,40%,80%,to{opacity:1}20%,60%{opacity:0}}@keyframes login-retry-right{0%,40%,80%,to{opacity:0}20%,60%{opacity:1}}.login-retry-bubble{position:absolute;top:13%;right:0;z-index:1;padding:9px 13px;border-radius:12px;background:#fff;color:#5542bf;box-shadow:0 4px 16px #34278c24;font-size:clamp(10px,.95vw,13px);font-weight:600;animation:login-retry-pop .18s ease-out both}.login-retry-bubble:after{content:"";position:absolute;right:25px;bottom:-5px;width:10px;height:10px;background:#fff;transform:rotate(45deg)}@keyframes login-retry-pop{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.login-asset-flow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.login-asset-token{opacity:0;animation:login-asset-transfer 9s ease-in-out infinite;animation-delay:calc(var(--asset-index) * -3s)}@keyframes login-asset-transfer{0%{opacity:0;transform:translate(46px,195px) scale(.7)}16%{opacity:1;transform:translate(72px,168px) scale(1)}48%{opacity:1;transform:translate(233px,189px) scale(1)}80%{opacity:.85;transform:translate(261px,297px) scale(.8)}to{opacity:0;transform:translate(260px,328px) scale(.25)}}.login-split[data-motion-paused=true] .login-asset-token{animation-play-state:paused}.login-split[data-motion-paused=true] .login-scene :is(.login-scene-pose,.login-retry-bubble){animation:none}@media(prefers-reduced-motion:reduce){.login-scene[data-character-state=attentive] .login-scene-poses{transform:none}.login-asset-flow{display:none}}.login-split{--login-purple: #6257ed;--login-surface: #303038;--login-muted: #bdbcc9;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:1fr 1fr;position:relative;isolation:isolate;background:var(--login-surface);color:#faf9ff}.login-split:before{content:"";position:absolute;inset:0 auto 0 0;width:56%;background:var(--login-purple);clip-path:polygon(0 0,100% 0,79% 100%,0 100%);z-index:-1}.login-brand{min-width:0;display:flex}.login-brand-inner{width:100%;padding:44px clamp(28px,4.2vw,72px) 40px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.login-wordmark{display:flex;align-items:center;gap:18px}.login-logo{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:12px;background:#fff;color:var(--login-purple);font:700 34px/1 var(--font-display)}.login-brand-name{display:block;font:700 30px/1.2 var(--font-display);letter-spacing:-.8px}.login-brand-sub{display:block;margin-top:5px;color:#eeecff;font-size:12px}.login-visual{width:100%;max-width:530px;margin:0;align-self:center}.login-visual p{margin:4px 0 0;font-size:15px;color:#f0eeff;text-align:center}.login-modules{display:flex;justify-content:space-between;gap:16px;max-width:440px;width:100%}.login-module{display:flex;align-items:center;gap:8px;color:#f0eeff;font-size:12px;padding:8px 9px;border:1px solid transparent;border-radius:8px;animation:login-module-cycle 12s linear infinite;animation-delay:calc(var(--module-index) * 3s)}@keyframes login-module-cycle{0%,22%{background:#ffffff1c;border-color:#fff6;color:#fff}25%,98%{background:transparent;border-color:transparent;color:#e0dbff}to{background:#ffffff1c;border-color:#fff6;color:#fff}}.login-module .material-symbols-outlined{font-size:23px}.login-form-wrap{min-width:0;padding:76px clamp(32px,6.4vw,112px) 96px clamp(32px,8.2vw,140px);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.login-card{width:100%;max-width:440px;margin:0}.login-heading{margin-bottom:36px}.login-heading .login-eyebrow{margin:0 0 12px;color:#b8b0ff;font-size:11px;font-weight:600;letter-spacing:2px}.login-heading h1{margin:0 0 10px;font-size:34px;line-height:1.2;letter-spacing:-.8px;color:#fff}.login-heading p{margin:0;color:var(--login-muted);font-size:14px;line-height:1.6}.login-fields{display:grid;gap:16px}.login-field{position:relative;min-width:0;border:1px solid #62616b;border-radius:6px;background:#515159;padding:11px 18px 10px 54px;transition:border-color .15s,box-shadow .15s}.login-field:focus-within{border-color:#b5adff;box-shadow:0 0 0 3px #a99dff24}.login-field-icon{position:absolute;top:50%;left:17px;transform:translateY(-50%);color:#f4f2ff;font-size:22px;pointer-events:none}.login-field label{display:block;margin:0 0 3px;color:#e2dfed;font-size:11px;font-weight:400;line-height:1.4}.login-field input{display:block;width:100%;min-width:0;height:23px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#fff;font:400 14px/23px var(--font-body);box-shadow:none}.login-field input::placeholder{color:#c4c1ce;opacity:1}.login-field input:focus{outline:none;border:0;box-shadow:none}.login-field input:autofill{-webkit-text-fill-color:#fff;box-shadow:0 0 0 100px #515159 inset;caret-color:#fff}.login-password-field{padding-right:52px}.login-password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;padding:0;border:0;border-radius:4px;background:transparent;color:#f4f2ff;cursor:pointer}.login-password-toggle:hover{background:#ffffff14}.login-password-toggle .material-symbols-outlined{font-size:20px}.login-help{margin:16px 0 20px;text-align:right;font-size:12px}.login-help summary{display:inline-block;color:#b8b0ff;cursor:pointer;list-style:none}.login-help summary::-webkit-details-marker{display:none}.login-help summary:hover{color:#d7d2ff;text-decoration:underline;text-underline-offset:3px}.login-help p{margin:10px 0 0;padding:12px;background:#ffffff08;border-radius:5px;color:#dedce8;text-align:left;line-height:1.6}.login-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:52px;padding:12px 20px;border:1px solid transparent;border-radius:6px;background:var(--login-purple);color:#fff;font:600 15px/1.5 var(--font-body);cursor:pointer;transition:background .15s,transform .15s}.login-submit:hover{background:#7368ff}.login-submit:active{transform:translateY(1px)}.login-submit:disabled{opacity:.65;cursor:wait}.login-submit .material-symbols-outlined{font-size:19px}.login-split :is(button,summary):focus-visible{outline:2px solid #c8c1ff;outline-offset:4px}.login-secure{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:16px;color:var(--login-muted);font-size:11px}.login-secure .material-symbols-outlined{font-size:14px}.login-foot{position:absolute;bottom:22px;left:24px;right:24px;margin:0;color:#b4b0c2;text-align:center;font-size:11px}.login-foot p{margin:0}.login-error{margin-bottom:20px;padding:12px 14px;border:1px solid #f3a7b0;border-radius:6px;background:#562f3b;color:#ffe1e5;font-size:13px;line-height:1.5}@keyframes login-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-wordmark,.login-visual,.login-modules,.login-heading,.login-fields,.login-help,.login-submit,.login-secure{animation:login-enter .65s cubic-bezier(.22,1,.36,1) backwards}.login-visual{animation-delay:.1s}.login-modules{animation-delay:.28s}.login-fields{animation-delay:.1s}.login-help{animation-delay:.16s}.login-submit{animation-delay:.22s}.login-secure{animation-delay:.28s}.login-art-stage{position:relative;perspective:900px}.login-art-tilt{position:relative;transition:transform .45s ease}.login-art-float{animation:login-float 6s ease-in-out infinite}@keyframes login-float{0%,to{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-12px) rotate(.4deg)}}.login-art-orbit{position:absolute;top:9%;right:9%;bottom:9%;left:9%;border:1px dashed #ffffff30;border-radius:50%;animation:login-orbit 24s linear infinite;pointer-events:none}.login-art-orbit span{position:absolute;top:14%;left:14%;width:8px;height:8px;border-radius:50%;background:#ded9ff;box-shadow:0 0 18px #ffffff50}@keyframes login-orbit{to{transform:rotate(360deg)}}.login-art-spark{position:absolute;width:7px;height:7px;border-radius:2px;background:#e8e3ff;pointer-events:none;animation:login-spark 4s ease-in-out infinite}.login-art-spark-one{top:25%;left:5%}.login-art-spark-two{top:16%;right:5%;width:5px;height:5px;animation-delay:-2s}@keyframes login-spark{0%,to{opacity:.35;transform:translateY(0) rotate(45deg) scale(.8)}50%{opacity:.85;transform:translateY(-8px) rotate(45deg) scale(1.1)}}.login-field-icon{transition:color .18s,transform .18s}.login-field:focus-within .login-field-icon{color:#cec7ff;transform:translateY(-50%) scale(1.08)}.login-submit{position:relative;overflow:hidden}.login-submit>*{position:relative}.login-submit:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(105deg,transparent 25%,#ffffff24 50%,transparent 75%);transform:translate(-110%)}.login-submit .material-symbols-outlined{transition:transform .18s ease}.login-error{animation:login-enter .2s ease-out}.login-fields-error .login-field{animation:login-reject .36s ease-in-out}@keyframes login-reject{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.login-submit.is-busy:before{animation:login-progress 1.4s ease-in-out infinite}@keyframes login-progress{to{transform:translate(110%)}}.login-motion-toggle{display:inline-flex;align-items:center;gap:7px;min-height:32px;margin-top:5px;padding:4px 8px;border:0;border-radius:4px;background:transparent;color:#bdb8ce;font:400 10px/1.5 var(--font-body);cursor:pointer}.login-motion-toggle:hover{color:#f0edff;background:#ffffff08}.login-motion-dot{width:5px;height:5px;border-radius:50%;background:#b8b0ff}.login-split[data-motion-paused=true] :is(.login-art-float,.login-art-orbit,.login-art-spark,.login-module),.login-split[data-motion-paused=true] .login-submit.is-busy:before{animation-play-state:paused}.login-split[data-motion-paused=true] .login-motion-dot{background:#87828f}.login-success-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.login-split.is-success .login-submit{background:#398566;opacity:1;cursor:default}.login-split.is-success .login-form-wrap,.login-split.is-success .login-brand{pointer-events:none;animation:login-success-exit var(--login-success-duration) ease-in forwards}@keyframes login-success-exit{0%,35%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media(hover:hover)and (pointer:fine){.login-art-stage:hover .login-art-tilt{transform:translateY(-3px) rotateY(-4deg) rotateX(2deg)}.login-submit:not(:disabled):hover{transform:translateY(-2px)}.login-submit:not(:disabled):hover .material-symbols-outlined{transform:translate(4px)}.login-submit:not(:disabled):active{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.login-split *,.login-split *:before,.login-split *:after{animation:none!important;transition:none!important}.login-art-stage:hover .login-art-tilt,.login-submit:not(:disabled):hover,.login-submit:not(:disabled):hover .material-symbols-outlined{transform:none}.login-field:focus-within .login-field-icon{transform:translateY(-50%)}.login-motion-toggle{display:none}}@media(min-width:1600px){.login-brand-inner{padding-left:max(72px,calc((100vw - 1440px)/2))}.login-visual{max-width:590px}}@media(max-width:1050px)and (min-width:761px){.login-form-wrap{padding-left:42px;padding-right:36px}.login-brand-inner{padding-left:32px;padding-right:32px}.login-brand-name{font-size:26px}.login-modules{gap:12px}.login-module{flex-direction:column;font-size:11px}.login-visual p{font-size:13px}}@media(max-width:760px){.login-split{grid-template-columns:1fr}.login-split:before{width:100%;height:148px;clip-path:polygon(0 0,100% 0,100% 75%,0 100%)}.login-brand-inner{padding:28px 28px 42px;gap:0}.login-wordmark{gap:13px}.login-logo{width:46px;height:46px;flex-basis:46px;border-radius:9px;font-size:28px}.login-brand-name{font-size:25px}.login-brand-sub{font-size:11px}.login-visual,.login-modules{display:none}.login-form-wrap{padding:30px 28px 28px;justify-content:flex-start}.login-heading{margin-bottom:28px}.login-heading h1{font-size:30px}.login-heading .login-eyebrow{font-size:10px}.login-field input{font-size:16px}.login-foot{position:static;margin-top:36px;line-height:1.6}}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/static/SpaceGrotesk-500-vietnamese-D0rl6rjA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/static/SpaceGrotesk-500-latin-BhU9QXUp.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/static/SpaceGrotesk-500-vietnamese-D0rl6rjA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/static/SpaceGrotesk-500-latin-BhU9QXUp.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/static/SpaceGrotesk-500-vietnamese-D0rl6rjA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/static/SpaceGrotesk-500-latin-BhU9QXUp.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/static/HankenGrotesk-400-vietnamese-CHiFlh_0.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/static/HankenGrotesk-400-latin-CaVRRdDk.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/static/HankenGrotesk-400-vietnamese-CHiFlh_0.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/static/HankenGrotesk-400-latin-CaVRRdDk.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/static/HankenGrotesk-400-vietnamese-CHiFlh_0.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/static/HankenGrotesk-400-latin-CaVRRdDk.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/static/HankenGrotesk-400-vietnamese-CHiFlh_0.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/static/HankenGrotesk-400-latin-CaVRRdDk.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/static/JetBrainsMono-400-vietnamese-BehTv68k.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/static/JetBrainsMono-400-latin-6fWv1k7M.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/static/JetBrainsMono-400-vietnamese-BehTv68k.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/static/JetBrainsMono-400-latin-6fWv1k7M.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/static/JetBrainsMono-400-vietnamese-BehTv68k.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/static/JetBrainsMono-400-latin-6fWv1k7M.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:swap;src:url(/static/MaterialSymbolsOutlined-Cow479L4.woff2) format("woff2")}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}@keyframes drift1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,-40px) scale(1.15)}}@keyframes drift2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,50px) scale(.9)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulseDot{0%,to{box-shadow:0 0 #10b98180}50%{box-shadow:0 0 0 6px #10b98100}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.55}}@keyframes sheen{0%{transform:translate(-120%) skew(-18deg)}to{transform:translate(240%) skew(-18deg)}}@keyframes drawLine{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.anim-fade-up{animation:fadeUp .5s cubic-bezier(.22,1,.36,1) both}.anim-fade-in{animation:fadeIn .4s ease both}.d1{animation-delay:.05s}.d2{animation-delay:.12s}.d3{animation-delay:.19s}.d4{animation-delay:.26s}.d5{animation-delay:.33s}.d6{animation-delay:.4s}.page-enter{animation:fadeUp .35s cubic-bezier(.22,1,.36,1) both}.shake{animation:shake .5s ease both}.btn{transition:background .18s ease,transform .1s ease,box-shadow .18s ease}.btn:active{transform:scale(.98)}.btn.primary,.btn.accent{position:relative;overflow:hidden}.btn.primary:after,.btn.accent:after{content:"";position:absolute;top:0;bottom:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:translate(-120%) skew(-18deg);pointer-events:none}.btn.primary:hover:after,.btn.accent:hover:after{animation:sheen .7s ease}.btn.primary:hover{box-shadow:0 6px 16px -4px #0f172a66}.card.lift{transition:transform .2s ease,box-shadow .2s ease}.card.lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop)}.kpi{transition:transform .2s ease,box-shadow .2s ease}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop)}.nav a{transition:background .16s ease,color .16s ease,transform .16s ease}.nav a:hover{transform:translate(2px)}.nav a .material-symbols-outlined{transition:color .16s ease}.search-results{animation:scaleIn .16s cubic-bezier(.22,1,.36,1) both;transform-origin:top left}.notif-panel{animation:scaleIn .18s cubic-bezier(.22,1,.36,1) both;transform-origin:top right}.badge.warn,.badge.err{animation:pulseSoft 2.4s ease-in-out infinite}.timeline:before{transform-origin:top;animation:drawLine .8s cubic-bezier(.22,1,.36,1) both}.timeline-item{animation:fadeUp .45s cubic-bezier(.22,1,.36,1) both}.timeline-item:nth-child(1){animation-delay:.05s}.timeline-item:nth-child(2){animation-delay:.1s}.timeline-item:nth-child(3){animation-delay:.15s}.timeline-item:nth-child(4){animation-delay:.2s}.timeline-item:nth-child(5){animation-delay:.25s}.timeline-item:nth-child(n+6){animation-delay:.3s}tbody tr{animation:fadeIn .3s ease both}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite;display:inline-block}.chart{position:relative}.chart-bars{display:flex;align-items:stretch;gap:8px;height:100%}.chart-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}.chart-bar-val{font-size:11px;font-weight:600;color:var(--ink);margin-bottom:4px}.chart-bar-track{flex:1;width:100%;max-width:44px;background:var(--slate-100);border-radius:6px;display:flex;align-items:flex-end;overflow:hidden}.chart-bar-fill{width:100%;height:100%;border-radius:6px;transform:scaleY(0);transform-origin:bottom;transition:transform .7s cubic-bezier(.22,1,.36,1)}.chart-bar-label{font-size:11px;color:var(--muted);margin-top:6px;white-space:nowrap}.donut-wrap{display:flex;align-items:center;gap:20px}.donut-total{font-family:var(--font-display);font-size:30px;font-weight:700;fill:var(--ink)}.donut-sub{font-size:12px;fill:var(--muted)}.donut-legend{display:flex;flex-direction:column;gap:8px;flex:1}.donut-leg{display:flex;align-items:center;gap:8px;font-size:13px}.donut-leg strong{margin-left:auto}.donut-sw{width:10px;height:10px;border-radius:3px;flex-shrink:0}.trend-label{font-size:11px;fill:var(--muted);font-family:var(--font-body)}.exec-kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.exec-kpi-4{grid-template-columns:repeat(4,1fr)}.kpi-link{text-decoration:none;color:inherit;display:block}.kpi-link:hover{transform:translateY(-2px)}.kpi-go{color:var(--muted);opacity:0;transition:opacity .2s}.kpi-link:hover .kpi-go{opacity:1}.b01-bar{display:flex;height:18px;border-radius:99px;overflow:hidden;background:var(--slate-100)}.b01-seg{display:block;height:100%;transition:filter .2s;min-width:8px}.b01-seg:hover{filter:brightness(.92)}.b01-draft{background:#6366f1}.b01-active{background:#10b981}.b01-legend{display:flex;gap:24px;margin-top:12px;flex-wrap:wrap}.b01-leg{display:flex;align-items:center;gap:8px;font-size:13px;text-decoration:none;color:inherit}.b01-sw-draft{background:#6366f1}.b01-sw-active{background:#10b981}@media(max-width:1200px){.exec-kpi-grid{grid-template-columns:repeat(3,1fr)}.exec-kpi-4{grid-template-columns:repeat(2,1fr)}}.exec-grid-2{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.exec-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}@media(max-width:1200px){.exec-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.exec-kpi-grid{grid-template-columns:repeat(2,1fr)}.exec-grid-2,.exec-grid-3{grid-template-columns:1fr}}.alert-row{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:14px}.alert-row:last-child{border-bottom:none}.alert-row .notif-ic{width:32px;height:32px;border-radius:10px}.alert-row .material-symbols-outlined.lvl-err{color:var(--crimson)}.alert-row .material-symbols-outlined.lvl-warn{color:var(--amber)}.alert-row .material-symbols-outlined.lvl-info{color:var(--sky)}.unit-bar-row{display:grid;grid-template-columns:140px 1fr 48px;align-items:center;gap:10px;padding:7px 0;font-size:13px}.unit-bar-track{height:8px;background:var(--slate-100);border-radius:99px;overflow:hidden}.unit-bar-fill{height:100%;width:100%;border-radius:99px;background:linear-gradient(90deg,var(--sky),var(--emerald));transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.22,1,.36,1)}.filter-chip-row{display:flex;align-items:center;gap:10px;margin:12px 0}.comment-list{display:flex;flex-direction:column;gap:10px}.comment{background:var(--slate-50, #f8fafc);border:1px solid var(--slate-200, #e2e8f0);border-radius:10px;padding:10px 12px}.comment-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.file-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--slate-200, #e2e8f0)}.file-row:last-child{border-bottom:none}.check-inline{display:flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}tr.row-alert td{background:#fef2f2}.work-list{display:flex;flex-direction:column;gap:12px}.work-card{display:flex;gap:14px;align-items:center;padding:14px 16px}.work-main{flex:1;min-width:0}.work-title-row{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}.work-meta{margin-top:4px}.work-actions{display:flex;gap:8px;flex-shrink:0}.empty-state{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:8px}@media(max-width:700px){.work-card{flex-wrap:wrap}.work-actions{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--navy: #0f172a;--navy-2: #1e293b;--navy-3: #020617;--sky: #38bdf8;--sky-bg: #e0f2fe;--sky-text: #0369a1;--emerald: #34d399;--emerald-bg: #d1fae5;--emerald-text: #065f46;--emerald-border: #a7f3d0;--amber: #fbbf24;--amber-bg: #fef3c7;--amber-text: #92400e;--amber-border: #fde68a;--crimson: #fb7185;--crimson-bg: #ffe4e6;--crimson-text: #be123c;--indigo: #818cf8;--indigo-bg: #eef2ff;--indigo-text: #4338ca;--indigo-border: #c7d2fe;--slate: #64748b;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--canvas: #f0f7ff;--card: #ffffff;--ink: #1e293b;--ink-soft: #475569;--muted: #94a3b8;--line: #e8eef7;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--shadow-card: 0 2px 12px rgba(148, 163, 184, .08);--shadow-pop: 0 8px 24px -4px rgba(148, 163, 184, .15);--shadow-modal: 0 24px 48px -8px rgba(148, 163, 184, .25);--font-display: "Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body: "Hanken Grotesk", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:linear-gradient(135deg,#e8f4fd,#f0f7ff 30%,#faf5ff 70%,#fdf2f8);background-attachment:fixed;color:var(--ink);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased}a{color:var(--sky-text);text-decoration:none}a:hover{text-decoration:underline}.linklike{background:none;border:none;padding:0;font:inherit;color:var(--sky-text);cursor:pointer}.linklike:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:var(--radius-sm)}.btn:focus-visible,a:focus-visible{outline-offset:1px}::selection{background:#bae6fd;color:#0c4a6e}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;border:2px solid var(--canvas)}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skel{border-radius:8px;background:linear-gradient(90deg,var(--slate-100) 25%,#e8eef5 37%,var(--slate-100) 63%);background-size:800px 100%;animation:shimmer 1.4s ease infinite}.skel-line{height:14px;margin:8px 0}.skel-title{height:28px;width:38%;margin-bottom:6px}.skel-card{height:118px}.skel-row{height:52px;margin-bottom:8px}@media(prefers-reduced-motion:reduce){.skel{animation:none}}.empty-state{text-align:center;padding:48px 24px;color:var(--muted)}.empty-state .material-symbols-outlined{font-size:44px;color:var(--slate-300);display:block;margin-bottom:12px}.empty-state h4{margin:0 0 6px;color:var(--ink-soft);font-size:15px}.empty-state p{margin:0 0 16px;font-size:13px}.page-head h1{text-wrap:balance}.kpi-value,.mono,td.mono,.timeline-time{font-variant-numeric:tabular-nums}h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 8px;letter-spacing:-.01em}.muted{color:var(--muted)}.sm{font-size:12px}.mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.02em}.app{display:flex;min-height:100vh}.shell{flex:1;display:flex;flex-direction:column;min-width:0}.main{flex:1;padding:24px 32px 48px;max-width:1280px;width:100%;margin:0 auto}.sidebar{width:260px;flex-shrink:0;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink-soft);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;padding:20px 20px 16px}.brand-mark{width:40px;height:40px;border-radius:var(--radius-md);background:var(--emerald);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:20px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.02em;color:var(--ink)}.brand-sub{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.nav-label{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--muted);padding:14px 20px 6px;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:2px;padding:0 12px;overflow-y:auto}.nav a{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-md);color:var(--ink-soft);font-size:14px;font-weight:500}.nav a:hover{background:#f0f7ff;color:var(--ink);text-decoration:none}.nav a.active{background:linear-gradient(135deg,#e0f2fe,#f0f9ff);color:var(--sky-text);font-weight:600;box-shadow:var(--shadow-card)}.nav a .material-symbols-outlined{font-size:20px;color:var(--muted)}.nav a.active .material-symbols-outlined{color:var(--sky)}.side-foot{margin-top:auto;padding:16px 20px;border-top:1px solid var(--line)}.user-chip{display:flex;align-items:center;gap:10px}.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--sky);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-avatar-img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-avatar-lg{width:96px;height:96px;border-radius:50%;object-fit:cover;font-size:32px;flex-shrink:0}.user-name{font-size:13px;font-weight:600;color:var(--ink)}.user-role{font-size:11px;color:var(--muted)}.topbar{background:#ffffffbf;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6);border-radius:20px;margin:16px 32px 0;padding:10px 20px;display:flex;align-items:center;gap:12px;position:sticky;top:16px;z-index:20;box-shadow:0 4px 20px #94a3b81f}.searchbox{display:flex;align-items:center;gap:8px;background:var(--slate-100);border:1px solid transparent;border-radius:24px;padding:0 16px;height:40px;width:420px;max-width:40vw;position:relative}.searchbox:focus-within{border-color:var(--sky);background:#fff;box-shadow:0 0 0 3px #0ea5e926}.searchbox input{border:none;background:none;outline:none;flex:1;font-size:14px;color:var(--ink)}.searchbox .material-symbols-outlined{color:var(--muted);font-size:20px}.searchbox kbd{font-family:var(--font-mono);font-size:11px;color:var(--muted);background:#fff;border:1px solid var(--slate-300);border-radius:4px;padding:1px 6px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid transparent;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}.icon-btn:hover{background:var(--slate-100)}.icon-btn .material-symbols-outlined{font-size:22px}.topbar .user-chip .user-name{color:var(--ink)}.topbar .user-chip .user-role{color:var(--muted)}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--slate-300);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);z-index:50;max-height:380px;overflow-y:auto;padding:6px}.search-group{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}.search-item{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:8px 10px;border-radius:var(--radius-sm);font-size:14px;color:var(--ink);font-family:var(--font-body)}.search-item:hover{background:var(--slate-100)}.icon-btn{position:relative}.notif-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;background:var(--crimson);color:#fff;border-radius:999px;font-size:11px;font-weight:700;line-height:18px;text-align:center}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:400px;max-width:94vw;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 48px -12px #0f172a2e,0 8px 16px -8px #0f172a14;z-index:60;overflow:hidden}.notif-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px 12px}.notif-head strong{font-size:15px;font-family:var(--font-display);letter-spacing:-.01em}.notif-head .mark-read{background:none;border:none;cursor:pointer;color:var(--sky-text);font-size:12.5px;font-weight:600;font-family:var(--font-body);padding:4px 0}.notif-head .mark-read:hover{text-decoration:underline}.notif-list{max-height:460px;overflow-y:auto;padding:4px 10px 12px}.notif-sec-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 8px 6px}.notif-sec-head .material-symbols-outlined{font-size:15px}.notif-count{background:var(--amber-bg);color:var(--amber-text);border-radius:999px;font-size:11px;padding:1px 8px;font-weight:700}.notif-item{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:12px;padding:11px 12px;cursor:pointer;color:var(--ink);font-family:var(--font-body);position:relative;transition:background .15s ease,border-color .15s ease}.notif-item:hover{background:var(--slate-100)}.notif-item:active{transform:scale(.99)}.notif-item.unread{background:#f0f9ff}.notif-item.read{opacity:.62}.notif-item.alert{background:#fffbeb;border-color:#fde68a;margin-bottom:8px}.notif-item.alert:hover{background:#fef3c7}.notif-item.alert .notif-title{font-weight:700}.notif-ic{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.notif-item:hover .notif-ic{transform:scale(1.06)}.notif-ic .material-symbols-outlined{font-size:19px}.notif-ic.amber{background:#fef3c7;color:#b45309}.notif-ic.indigo{background:#eef2ff;color:#6366f1}.notif-ic.sky{background:var(--sky-bg);color:var(--sky-text)}.notif-ic.slate{background:var(--slate-100);color:var(--slate)}.notif-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif-title{font-size:13.5px;font-weight:600;line-height:19px;display:flex;align-items:center;gap:8px}.notif-text{font-size:12.5px;line-height:18px;color:var(--muted)}.notif-time{font-size:11px;color:var(--muted);font-family:var(--font-mono);margin-top:2px}.notif-go{color:var(--slate-300);font-size:19px;flex-shrink:0;margin-top:7px;transition:transform .15s ease,color .15s ease}.notif-item:hover .notif-go{transform:translate(3px);color:var(--sky)}.unread-dot{width:7px;height:7px;border-radius:50%;background:var(--sky);flex-shrink:0;animation:pulseSoft 2s ease-in-out infinite}.notif-item.read .unread-dot{display:none}.notif-empty{text-align:center;padding:44px 20px;color:var(--muted)}.notif-empty .material-symbols-outlined{font-size:42px;color:var(--slate-300);margin-bottom:10px}.notif-empty p{margin:0;font-size:14px;line-height:22px}@keyframes popIn{0%{transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}.notif-badge.pop{animation:popIn .35s cubic-bezier(.22,1,.36,1) both}@keyframes bellRing{0%,to{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-6deg)}}.bell-ring{animation:bellRing 1.6s ease-in-out infinite;transform-origin:top center}.perm-matrix{border-collapse:collapse;width:100%}.perm-matrix th,.perm-matrix td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:center}.perm-matrix th:first-child,.perm-matrix td:first-child{text-align:left}.perm-matrix input[type=checkbox]{width:18px;height:18px;cursor:pointer}.perm-group td{background:var(--slate-100);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:600;line-height:32px;letter-spacing:-.015em;margin:0}.page-sub{color:var(--muted);margin:4px 0 0;font-size:14px}.btn-group{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:24px;font-size:14px;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer;white-space:nowrap;font-family:var(--font-body)}.btn:hover{background:var(--slate-100)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,#38bdf8,#818cf8);border-color:transparent;color:#fff;border-radius:24px}.btn.primary:hover{filter:brightness(1.05);box-shadow:var(--shadow-pop)}.btn.accent{background:linear-gradient(135deg,#34d399,#2dd4bf);border-color:transparent;color:#fff;border-radius:24px}.btn.accent:hover{filter:brightness(1.05)}.btn.danger{background:var(--crimson);border-color:var(--crimson);color:#fff}.btn.ghost-dark{background:transparent;border-color:transparent;color:var(--ink-soft)}.btn.ghost-dark:hover{background:var(--slate-100)}.btn.sm{height:30px;padding:0 10px;font-size:13px}.btn.block{width:100%;justify-content:center}.btn .material-symbols-outlined{font-size:18px}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:20px;border:1px solid transparent;white-space:nowrap;font-family:var(--font-body)}.badge.ok{background:var(--emerald-bg);color:var(--emerald-text);border-color:var(--emerald-border)}.badge.warn{background:var(--amber-bg);color:var(--amber-text);border-color:var(--amber-border)}.badge.err{background:var(--crimson-bg);color:var(--crimson-text);border-color:#fecaca}.badge.info{background:var(--indigo-bg);color:var(--indigo-text);border-color:var(--indigo-border)}.badge.idle{background:var(--slate-100);color:#475569;border-color:var(--slate-300)}.badge.sky{background:var(--sky-bg);color:var(--sky-text);border-color:#bae6fd}.pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid transparent;white-space:nowrap;background:var(--sky-bg);color:var(--sky-text);border-color:#bae6fd}.pill.green{background:var(--emerald-bg);color:var(--emerald-text);border-color:var(--emerald-border)}.pill.amber{background:var(--amber-bg);color:var(--amber-text);border-color:var(--amber-border)}.pill.red{background:var(--crimson-bg);color:var(--crimson-text);border-color:#fecaca}.pill.gray{background:var(--slate-100);color:#475569;border-color:var(--slate-300)}.pill.sm{font-size:10px;height:20px}.card{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;margin-bottom:20px;box-shadow:var(--shadow-card)}.card h3{font-size:16px;font-weight:600;margin-bottom:12px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px;flex-wrap:wrap}.card-head h3{margin:0}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:20px}.kpi{position:relative;overflow:hidden;margin-bottom:0}.kpi-top{display:flex;justify-content:space-between;align-items:center}.kpi-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--kpi-bg, #e0f2fe);color:var(--kpi-accent, var(--sky))}.kpi-icon .material-symbols-outlined{font-size:20px}.kpi-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}.kpi-value{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:34px}.kpi-sub{font-size:13px;color:var(--muted);margin-top:4px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}thead th{background:#f8fbff;color:var(--ink-soft);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;white-space:nowrap}tbody td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#f0f7ff}td .mono,.mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.02em}.empty{padding:24px;text-align:center;color:var(--muted)}.row-actions{display:flex;gap:4px}label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:4px}input,select,textarea{font-family:var(--font-body);font-size:14px;color:var(--ink);height:38px;padding:0 12px;width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm)}textarea{height:auto;padding:8px 12px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 3px #38bdf826}input[type=checkbox]{width:16px;height:16px;accent-color:var(--sky)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}.form-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-inline input,.form-inline select{width:auto;flex:1;min-width:160px}.check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;white-space:nowrap}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 16px}.toolbar.wrap{row-gap:10px}.toolbar input,.toolbar select{width:auto}.toolbar input[type=text],.toolbar input:not([type]){min-width:220px;flex:1}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-bottom:20px}.detail-grid .card{margin-bottom:0}.dl{display:grid;grid-template-columns:150px 1fr;row-gap:8px;column-gap:12px;margin:0;font-size:14px}.dl dt{color:var(--muted);font-weight:500}.dl dd{margin:0;font-weight:600;color:var(--ink)}.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line)}.timeline-item{position:relative;padding:10px 0}.timeline-dot{position:absolute;left:-24px;top:14px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--sky)}.timeline-dot.ok{border-color:var(--emerald)}.timeline-dot.warn{border-color:var(--amber)}.timeline-dot.err{border-color:var(--crimson)}.timeline-dot.idle{border-color:var(--slate-300)}.timeline-time{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.ev-changes{display:block;margin-top:4px}.ev-change{display:inline-block;background:var(--amber-bg);color:var(--amber-text);border-radius:var(--radius-sm);padding:1px 8px;font-size:12px;font-weight:600;margin:2px 6px 2px 0}.tl-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.tl-row:last-child{border-bottom:none}.tl-row .muted.sm{margin-left:auto}.alert{padding:12px 16px;border-radius:var(--radius-md);margin-bottom:16px;font-size:14px;border:1px solid}.alert.error{background:var(--crimson-bg);border-color:#fecaca;color:var(--crimson-text)}.alert.ok{background:var(--emerald-bg);border-color:var(--emerald-border);color:var(--emerald-text)}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:16px}.report-grid .card{margin-bottom:0}.actions-col{display:flex;flex-direction:column;gap:16px}.op{border-top:1px solid var(--line);padding-top:14px}.op:first-child{border-top:none;padding-top:0}.op>strong{display:block;margin-bottom:8px;font-family:var(--font-display);font-size:14px}.qr{width:160px;height:160px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.doc-list{list-style:none;padding:0;margin:8px 0}.doc-list li{padding:5px 0;font-size:14px;border-bottom:1px solid var(--line)}.doc-list li:last-child{border-bottom:none}.link-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--sky);font-size:inherit;font-family:inherit;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{color:var(--navy)}.progress{height:8px;background:var(--slate-100);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--emerald);border-radius:999px}.stat-link{font-family:var(--font-mono);font-size:12px}.center{display:flex;align-items:center;justify-content:center;min-height:60vh}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;vertical-align:middle;-webkit-user-select:none;user-select:none}@media(max-width:1024px){.sidebar{width:64px}.sidebar .brand-name,.sidebar .brand-sub,.sidebar .nav-label,.sidebar .nav a span:last-child,.sidebar .side-foot .user-chip>div,.sidebar .side-foot .btn{display:none}.sidebar .nav a{justify-content:center;padding:10px}.sidebar .brand{justify-content:center;padding:16px 8px}.main{padding:16px}.topbar{padding:10px 16px}.searchbox{width:100%;max-width:none}.dl{grid-template-columns:120px 1fr}}.sidebar-knob{position:fixed;left:0;top:50%;transform:translateY(-50%);width:28px;height:56px;z-index:50;background:#fff;border:1px solid var(--line);border-left:none;border-radius:0 14px 14px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-pop);color:var(--muted);transition:all .25s ease}.sidebar-knob:hover{color:var(--sky-text);width:32px}.sidebar-knob .material-symbols-outlined{font-size:18px;transition:transform .3s ease}.sidebar-knob.collapsed .material-symbols-outlined{transform:rotate(180deg)}.app.sidebar-collapsed .sidebar{width:76px}.app.sidebar-collapsed .sidebar .brand-name,.app.sidebar-collapsed .sidebar .brand-sub,.app.sidebar-collapsed .sidebar .nav-label,.app.sidebar-collapsed .sidebar .nav a span:last-child,.app.sidebar-collapsed .sidebar .side-foot .user-chip>div{display:none}.app.sidebar-collapsed .sidebar .nav a{justify-content:center;padding:12px}.app.sidebar-collapsed .sidebar .brand{justify-content:center;padding:16px 8px}.progress{margin:8px 0}.progress-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:4px}.progress-label{font-weight:600;color:var(--ink)}.progress-meta{color:var(--muted);font-size:11px}.progress-track{height:8px;background:#e8eef7;border-radius:10px;overflow:hidden}.progress-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,#34d399,#2dd4bf);transition:width .5s ease}.progress-fill.blue{background:linear-gradient(90deg,#38bdf8,#818cf8)}.progress-fill.amber{background:linear-gradient(90deg,#fbbf24,#fb923c)}.arc-sidebar{width:132px;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;padding:20px 0 16px;z-index:30}.arc-spine{position:absolute;left:0;top:12px;bottom:12px;width:76px;background:linear-gradient(165deg,#ffffffe6,#f0f9ffbf);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.8);border-left:none;border-radius:0 40px 40px 0;box-shadow:6px 0 32px #94a3b826,inset -2px 0 8px #fff9}.arc-spine:before{content:"";position:absolute;left:14px;top:90px;bottom:90px;width:4px;background:linear-gradient(180deg,transparent 0%,#7dd3fc 15%,#a5b4fc 40%,#c4b5fd 60%,#f9a8d4 85%,transparent 100%);border-radius:4px;opacity:.85;box-shadow:0 0 12px #7dd3fc80}.arc-spine:after{content:"";position:absolute;left:8px;top:50%;width:16px;height:16px;transform:translateY(-50%);background:radial-gradient(circle,#fff 30%,#bae6fd 70%);border-radius:50%;border:2px solid rgba(125,211,252,.4);box-shadow:0 0 16px #7dd3fc99;animation:spinePulse 3s ease-in-out infinite}@keyframes spinePulse{0%,to{box-shadow:0 0 12px #7dd3fc66}50%{box-shadow:0 0 24px #7dd3fccc}}.arc-brand{position:relative;z-index:2;margin-bottom:24px}.arc-brand .brand-mark{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#38bdf8,#818cf8);box-shadow:0 4px 16px #38bdf859}.arc-nav{position:relative;z-index:2;display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:none}.arc-nav::-webkit-scrollbar{display:none}.arc-nav a{display:flex;align-items:center;gap:10px;padding:10px 14px 10px 12px;margin-left:var(--arc, 0px);border-radius:20px;font-size:13px;font-weight:500;color:var(--ink-soft);white-space:nowrap;background:#ffffff80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid transparent;transition:all .25s cubic-bezier(.4,0,.2,1);transform:translate(calc(var(--arc, 0px) * .3))}.arc-nav a:hover{background:#ffffffe6;text-decoration:none;transform:translate(calc(var(--arc, 0px) * .3 + 4px));box-shadow:var(--shadow-card)}.arc-nav a.active{background:linear-gradient(135deg,#0ea5e9,#6366f1);color:#fff;font-weight:700;font-size:14px;padding:14px 22px 14px 18px;box-shadow:0 8px 28px #0ea5e973,0 0 0 1px #ffffff4d inset;transform:translate(calc(var(--arc, 0px) * .3 + 10px)) scale(1.08);border:none;position:relative}.arc-nav a.active:before{content:"";position:absolute;left:-6px;top:50%;width:8px;height:8px;transform:translateY(-50%);background:#38bdf8;border-radius:50%;box-shadow:0 0 12px #38bdf8}.arc-nav a .material-symbols-outlined{font-size:20px;flex-shrink:0}.arc-nav a.active .material-symbols-outlined{font-size:22px}.arc-divider{height:1px;margin:10px 16px;background:linear-gradient(90deg,transparent,var(--line),transparent)}.arc-foot{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:12px}.arc-logout{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#ffffffb3;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.arc-logout:hover{color:var(--crimson-text);background:var(--crimson-bg)}.slide-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#1e293b40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .25s ease}.slide-panel{position:absolute;right:16px;top:16px;bottom:16px;width:var(--panel-width, 480px);max-width:calc(100vw - 32px);background:#ffffffeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden;animation:slideInRight .35s cubic-bezier(.32,.72,0,1)}@keyframes slideInRight{0%{transform:translate(60px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid var(--line)}.slide-head h3{margin:0;font-size:17px;font-weight:700}.slide-body{flex:1;overflow-y:auto;padding:20px 24px}.slide-foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;background:#f8fbffb3}.org-tabs{display:flex;gap:8px;margin:16px 0 20px;padding:6px;border-radius:18px;background:#ffffffa6;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:fit-content;max-width:100%;flex-wrap:wrap}.org-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:0;border-radius:12px;background:transparent;color:var(--ink-soft);font-size:14px;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.org-tab:hover{background:#ffffffe6;color:var(--ink)}.org-tab.active{background:linear-gradient(135deg,#c7d8f5,#d9c9f2);color:#2b3a55;box-shadow:0 2px 10px #788cc840}.org-tab .material-symbols-outlined{font-size:19px;vertical-align:-4px}.org-tab-body{animation:fadeIn .25s ease}.pager{display:flex;align-items:center;gap:12px;margin-top:12px}.persp{background:#fff9;border:1px solid var(--line);border-radius:14px;padding:12px}.persp-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--ink)}.persp-head .material-symbols-outlined{font-size:20px;color:var(--sky)}.group-actionbar{position:sticky;top:0;z-index:10;background:var(--card);margin:-20px -24px 0;padding:32px 24px 12px;border-bottom:1px solid var(--line)}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.home-col{display:flex;flex-direction:column;gap:16px;min-width:0}.zone-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.zone-head .material-symbols-outlined{font-size:22px;color:var(--sky)}.zone-head h3{margin:0;font-size:16px;font-weight:600}.zone-head .count{margin-left:auto}.zone-list{display:flex;flex-direction:column;gap:8px}.zone-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.zone-item:hover{border-color:var(--slate-300)}.zone-item .zi-body{min-width:0;flex:1}.zone-item .zi-title{font-weight:600;font-size:14px;line-height:1.4}.zone-item .zi-title a{color:inherit;text-decoration:none}.zone-item .zi-title a:hover{color:var(--sky)}.zone-item .zi-meta{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.zone-thumb{width:64px;height:48px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--slate-100)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.kpi-mini{text-align:center;padding:14px 8px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.kpi-mini .num{font-size:26px;font-weight:700;line-height:1.2}.kpi-mini .lbl{font-size:12px;color:var(--muted);margin-top:4px}.kpi-mini.danger .num{color:var(--crimson)}.kpi-mini.warn .num{color:var(--amber-text)}.article-card{display:flex;gap:14px;padding:14px 16px;align-items:flex-start}.article-cover{width:120px;height:84px;object-fit:cover;border-radius:10px;flex-shrink:0;background:var(--slate-100)}.article-main{flex:1;min-width:0}.article-title{font-size:16px;font-weight:600;line-height:1.45;margin:0 0 4px}.article-title a{color:inherit;text-decoration:none}.article-title a:hover{color:var(--sky)}.article-summary{font-size:13px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:12px;color:var(--muted)}.unread-dot{width:8px;height:8px;border-radius:50%;background:var(--sky);display:inline-block;flex-shrink:0}.article-body{font-size:16px;line-height:1.75;color:var(--ink);word-wrap:break-word}.article-body h1{font-size:24px;margin:1.2em 0 .6em;line-height:1.4}.article-body h2{font-size:20px;margin:1.2em 0 .6em;line-height:1.4}.article-body h3{font-size:17px;margin:1.1em 0 .5em;line-height:1.4}.article-body p{margin:0 0 1em}.article-body ul,.article-body ol{margin:0 0 1em;padding-left:1.6em}.article-body li{margin-bottom:.35em}.article-body blockquote{margin:0 0 1em;padding:10px 18px;color:var(--ink-soft);font-style:italic;background:var(--slate-100);border-radius:var(--radius-md)}.article-body a{color:var(--sky)}.article-body img{max-width:100%;height:auto;border-radius:var(--radius-md)}.article-body figure{margin:0 0 1em}.article-body figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:6px}.article-body hr{border:none;border-top:1px solid var(--line);margin:1.5em 0}.article-body table{border-collapse:collapse;width:100%;margin:0 0 1em;font-size:14px;display:block;overflow-x:auto}.article-body th,.article-body td{border:1px solid var(--line);padding:8px 12px;text-align:left}.article-body th{background:var(--slate-100);font-weight:600}.article-body .video-embed{margin:0 0 1em}.video-embed{position:relative;width:100%;aspect-ratio:16 / 9;background:#0f172a;border-radius:var(--radius-lg);overflow:hidden}.video-embed .ve-thumb{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.video-embed .ve-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#94a3b8}.video-embed .ve-fallback .material-symbols-outlined{font-size:56px}.video-embed .ve-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#02061759;border:none;cursor:pointer;width:100%}.video-embed .ve-play .material-symbols-outlined{font-size:64px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5);transition:transform .15s ease}.video-embed .ve-play:hover .material-symbols-outlined{transform:scale(1.12)}.video-embed iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.video-embed .ve-cap{position:absolute;left:0;right:0;bottom:0;padding:6px 12px;font-size:12px;color:#e2e8f0;background:linear-gradient(transparent,#020617b3)}video.article-video{width:100%;max-height:480px;border-radius:var(--radius-lg);background:#0f172a;margin:0 0 1em}.editor-shell{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;overflow:hidden}.editor-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--slate-100);position:sticky;top:0;z-index:5}.editor-toolbar .tsep{width:1px;background:var(--line);margin:4px 6px}.tbtn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:13px;font-weight:600}.tbtn .material-symbols-outlined{font-size:19px}.tbtn:hover{background:#fff;border-color:var(--line)}.tbtn.active{background:#fff;border-color:var(--sky);color:var(--sky)}.tbtn:disabled{opacity:.4;cursor:not-allowed}.tbtn .tbtn-label{font-size:12px}.ProseMirror{min-height:420px;padding:20px 24px;outline:none;font-size:16px;line-height:1.75}.ProseMirror>*:first-child{margin-top:0}.ProseMirror h1{font-size:24px;margin:1em 0 .5em}.ProseMirror h2{font-size:20px;margin:1em 0 .5em}.ProseMirror h3{font-size:17px;margin:1em 0 .5em}.ProseMirror p{margin:0 0 .9em}.ProseMirror ul,.ProseMirror ol{padding-left:1.6em;margin:0 0 .9em}.ProseMirror blockquote{margin:0 0 1em;padding:10px 18px;color:var(--ink-soft);font-style:italic;background:var(--slate-100);border-radius:var(--radius-md)}.ProseMirror a{color:var(--sky)}.ProseMirror img{max-width:100%;height:auto;border-radius:var(--radius-md)}.ProseMirror table{border-collapse:collapse;width:100%;margin:0 0 1em;font-size:14px}.ProseMirror th,.ProseMirror td{border:1px solid var(--line);padding:8px 12px;min-width:60px}.ProseMirror th{background:var(--slate-100)}.ProseMirror .selectedCell{background:#e0f2fe}.ProseMirror .video-node{border:1px dashed var(--sky);border-radius:var(--radius-md);padding:8px;margin:0 0 1em;background:#f0f9ff}.ProseMirror .video-node .vn-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}.ProseMirror .video-node .material-symbols-outlined{color:var(--sky)}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted);float:left;height:0;pointer-events:none}.preview-frame{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;padding:24px;margin:0 auto}.preview-frame.mobile{max-width:400px}.preview-frame.desktop{max-width:860px}.preview-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.preview-toggle button{border:none;background:transparent;padding:6px 14px;font-size:13px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.preview-toggle button.active{background:#18181b;color:#fff}.save-indicator{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.save-indicator .material-symbols-outlined{font-size:16px}.save-indicator.saving{color:var(--amber-text)}.save-indicator.saved{color:var(--emerald-text)}.save-indicator.failed{color:var(--crimson-text)}.save-indicator .spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite;display:inline-flex}.upload-status{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--slate-100);font-size:13px}.upload-status .material-symbols-outlined{font-size:18px;color:var(--muted)}.upload-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft)}.upload-progress{flex:1;min-width:80px;height:8px;border-radius:999px;background:var(--line);overflow:hidden}.upload-progress-bar{height:100%;border-radius:999px;background:linear-gradient(135deg,#10b981,#0c7459);transition:width .2s ease}.cat-tree{display:flex;flex-direction:column}.cat-node{border-bottom:1px solid var(--line)}.cat-row{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:10px}.cat-row:hover{background:var(--slate-100)}.cat-row .cat-name{font-weight:600;font-size:14px}.cat-row .cat-code{font-size:12px}.cat-children{border-left:2px solid var(--line);margin-left:14px}.cat-actions{margin-left:auto;display:flex;gap:2px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:110;padding:16px}.dialog{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);max-width:640px;width:100%;max-height:88vh;display:flex;flex-direction:column;animation:dialogIn .18s ease}@keyframes dialogIn{0%{transform:translateY(12px) scale(.98);opacity:0}}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.dialog-head h3{margin:0;font-size:16px}.dialog-body{padding:20px;overflow-y:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line);flex-wrap:wrap}.qr-box{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.qr-box svg{border:1px solid var(--line);border-radius:var(--radius-md);padding:8px;background:#fff}.public-shell{min-height:100vh;background:radial-gradient(circle at 18% 12%,rgba(16,185,129,.1),transparent 42%),linear-gradient(145deg,#f3ede5,#e7dfd4 52%,#efe9e0);color:#18181b}.public-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;background:#faf6f0c7;backdrop-filter:blur(22px) saturate(145%);-webkit-backdrop-filter:blur(22px) saturate(145%);border-bottom:1px solid rgba(255,255,255,.78);box-shadow:0 8px 24px -8px #120e0a1a;position:sticky;top:0;z-index:10}.public-brand{font-family:var(--font-display);font-weight:700;font-synthesis:none;font-size:16px;color:#18181b;letter-spacing:-.02em}.public-shell .btn.primary{background:#18181b;border-color:#18181b;color:#fff}.public-shell .card{background:#fffc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.85);border-radius:24px;box-shadow:0 12px 32px -10px #1814101a}.public-main{max-width:1120px;margin:0 auto;padding:24px}.cover-pick{display:flex;gap:8px;flex-wrap:wrap}.cover-thumb{width:96px;height:64px;object-fit:cover;border-radius:8px;border:2px solid transparent;cursor:pointer}.cover-thumb.selected{border-color:#10b981}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.diff-box{border:1px solid var(--line);border-radius:var(--radius-md);padding:12px;max-height:320px;overflow:auto;background:var(--slate-100);font-size:14px}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form input,.inline-form select{width:auto}.field-label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin:0 0 6px}@media(max-width:900px){.home-grid{grid-template-columns:1fr}.home-col.can-xu-ly{order:-1}.home-col .zone-card{order:initial}.article-cover{width:88px;height:64px}.ProseMirror{padding:14px 16px;min-height:320px}.editor-toolbar{position:static}.public-top{padding:10px 14px}.public-main{padding:16px 12px}}.release-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;background:var(--indigo-bg);border-bottom:1px solid var(--indigo-border);color:var(--indigo-text);animation:releaseBannerIn .25s ease-out}.release-banner.important{background:var(--amber-bg);border-bottom-color:var(--amber-border);color:var(--amber-text)}@keyframes releaseBannerIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.release-banner-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#ffffffb3;flex:none}.release-banner-icon .material-symbols-outlined{font-size:20px}.release-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}.release-banner-text strong{font-size:14px}.release-banner-sub{font-size:13px;opacity:.9}.release-banner-badges{display:flex;gap:6px;margin-top:2px}.release-banner-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.release-banner-warn{flex:1 1 100%;display:flex;align-items:center;gap:8px;font-size:13px;background:var(--crimson-bg);color:var(--crimson-text);border:1px solid #fecaca;border-radius:var(--radius-md);padding:8px 12px}.release-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.release-list{display:flex;flex-direction:column;gap:12px}.release-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.release-item-title{font-size:16px;font-weight:600;color:var(--ink);text-decoration:none}.release-item-title:hover{text-decoration:underline}.release-item-badges{display:flex;gap:6px;flex-wrap:wrap}.release-summary{font-size:15px;line-height:1.6;color:var(--ink-soft);white-space:pre-wrap}.release-body{margin-top:8px}.release-group{margin-top:16px}.release-group-title{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 8px;color:var(--ink)}.release-group-title .material-symbols-outlined{font-size:20px;color:var(--sky)}.release-change-list{margin:0;padding-left:28px;font-size:14px;line-height:1.7;color:var(--ink-soft)}.release-change-list li{margin-bottom:4px}.release-audience-summary{margin:4px 0;padding-left:20px;font-size:14px}.release-audience-summary li{margin-bottom:4px}.form-grid .span-2{grid-column:1 / -1}.aud-field{border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px;margin:0}.aud-field legend{font-size:13px;font-weight:600;padding:0 6px;color:var(--ink-soft)}.check-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}.check-item{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.alert.warn{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber-text);display:flex;gap:8px;align-items:flex-start}@media(max-width:480px){.release-banner{padding:10px 12px;gap:8px}.release-banner-actions{width:100%}.release-banner-actions .btn{flex:1 1 auto;justify-content:center}.release-item-head{flex-direction:column}}@media(prefers-reduced-motion:reduce){.release-banner{animation:none}.release-banner .btn{transition:none}}
