html{line-height:normal}body{margin:0;font-family:var(--font-sans);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}.ex-stage{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);box-sizing:border-box}.ex-stage--col{flex-direction:column;align-items:stretch}.ex-stage--surface{background:var(--surface)}:is(.ex-stage,.ex-sidebar,.ex-topbar,.ex-page-header,.ex-auth,.ex-modal-layer,.ex-page),:is(.ex-stage,.ex-sidebar,.ex-topbar,.ex-page-header,.ex-auth,.ex-modal-layer,.ex-page) *{box-sizing:border-box}:is(.ex-stage,.ex-sidebar,.ex-topbar,.ex-page-header,.ex-auth,.ex-modal-layer,.ex-page) :is(button,input,select,textarea){font-family:inherit}:is(.ex-stage,.ex-sidebar,.ex-topbar,.ex-page-header,.ex-auth,.ex-modal-layer,.ex-page) button{cursor:pointer}:is(.ex-stage,.ex-sidebar,.ex-topbar,.ex-page-header,.ex-auth,.ex-modal-layer,.ex-page) button:disabled{cursor:not-allowed}:is(.ex-stage,.ex-sidebar,.ex-topbar,.ex-page-header,.ex-auth,.ex-modal-layer,.ex-page) :focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}.ex-svg{display:block;flex-shrink:0}.ex-muted{color:var(--fg-2)}.ex-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control);padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font-size:14px;font-weight:400;white-space:nowrap;transition:background .15s}.ex-btn:hover{background:var(--row-hover)}.ex-btn .ex-svg{color:var(--fg-2)}.ex-btn--primary{background:var(--ink);border-color:var(--ink);color:var(--on-ink);font-weight:600}.ex-btn--primary .ex-svg{color:currentColor}.ex-btn--primary:hover{background:var(--button-primary-hover)}.ex-btn--md{height:var(--control-md);padding:0 var(--space-4);font-weight:600}.ex-btn--danger{background:var(--danger);border-color:var(--danger);color:var(--on-ink);font-weight:600}.ex-btn--danger:hover{background:var(--err-banner-fg)}.ex-btn--save{height:auto;border:none;background:var(--ink);color:var(--on-ink);padding:var(--space-2\.5) var(--space-5);font-weight:600}.ex-btn--save:hover{background:var(--button-primary-hover)}.ex-btn:disabled{opacity:.6}.ex-btn--lg{width:100%;justify-content:center;gap:var(--space-2\.5);height:var(--button-lg);border:none;border-radius:var(--radius-xl);background:var(--ink);color:var(--on-ink);font-size:15px;font-weight:600;transition:background .15s,transform .15s}.ex-btn--lg:hover{background:var(--ink-hover)}.ex-btn--lg:active{transform:scale(.99)}.ex-btn--lg:disabled{background:var(--disabled);opacity:1}.ex-btn--back{height:var(--control-sm);border:none;background:transparent;padding:0 var(--space-2\.5) 0 var(--space-1\.5);gap:var(--space-1\.5);font-size:13px;font-weight:500;color:var(--fg-2)}.ex-btn--back:hover{background:var(--row-hover);color:var(--ink)}.ex-btn--back .ex-svg{color:currentColor}.ex-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-sm);height:var(--control-sm);padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--fg-2)}.ex-icon-btn:hover{background:var(--mist);color:var(--ink)}.ex-icon-btn--square{width:32px;height:32px;border-radius:var(--radius-lg)}.ex-chevron-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-xs);height:var(--control-xs);padding:0;border:none;border-radius:var(--radius-lg);background:transparent;color:var(--fg-2)}.ex-chevron-btn:hover{background:var(--mist-hover);color:var(--ink)}.ex-chevron-btn .ex-svg,.ex-chevron{transition:transform .15s}.ex-chevron-btn[aria-expanded=true] .ex-svg,[aria-expanded=true]>.ex-chevron{transform:rotate(180deg)}.ex-link{font-size:12px;font-weight:600;color:var(--signal);text-decoration:none}.ex-link:hover{color:var(--signal-hover)}.ex-saved{display:inline-flex;align-items:center;gap:var(--space-1\.5);font-size:14px;font-weight:600;color:var(--ok-fg)}.ex-menu{width:208px;box-sizing:content-box!important;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-1) 0;text-align:left;box-shadow:var(--shadow-menu)}.ex-menu-item{display:flex;align-items:center;gap:var(--space-2\.5);width:100%;padding:var(--space-2) var(--space-3);border:none;background:transparent;text-align:left;font-size:14px;color:var(--ink)}.ex-menu-item:hover{background:var(--row-hover)}.ex-menu-item--signal{color:var(--signal)}.ex-menu-item--ok{color:var(--ok-fg)}.ex-menu-item--danger{color:var(--err-dot)}.ex-menu-item[aria-disabled=true]{color:var(--line);cursor:not-allowed}.ex-menu-item[aria-disabled=true]:hover{background:transparent}.ex-menu-divider{margin:var(--space-1) 0;border-top:1px solid var(--line)}.ex-seg{display:inline-flex;align-items:center;padding:var(--space-0\.5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.ex-seg>button{margin:1px;display:flex;align-items:center;justify-content:center;height:var(--control-sm);padding:0 var(--space-3);border:none;border-radius:var(--radius-md);background:transparent;color:var(--ink);font-size:14px;white-space:nowrap}.ex-seg--muted>button{color:var(--fg-2)}.ex-seg--icons>button{width:var(--control-sm);padding:0;color:var(--fg-2)}.ex-seg>button:hover{background:var(--row-hover)}.ex-seg>button[aria-pressed=true]{background:var(--mist);color:var(--signal)}.ex-tabs{display:flex;border-bottom:1px solid var(--line)}.ex-tab{margin-bottom:-1px;display:inline-flex;align-items:center;gap:var(--space-2);border:0;border-bottom:2px solid transparent;background:transparent;padding:var(--space-2) var(--space-3\.5);font-size:14px;font-weight:500;color:var(--fg-2);white-space:nowrap}.ex-tab:hover{color:var(--signal)}.ex-tab[aria-selected=true]{border-bottom-color:var(--signal);color:var(--signal)}.ex-pill{box-sizing:content-box!important;display:inline-flex;align-items:center;gap:var(--space-1\.5);height:var(--badge-height);padding:0 var(--space-2);border:1px solid;border-radius:var(--radius-full);font-size:12px;font-weight:500;white-space:nowrap}.ex-pill>.ex-dot{width:6px;height:6px}.ex-pill--ok{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg);--dot: var(--ok-dot)}.ex-pill--warn{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn-fg);--dot: var(--warn-dot)}.ex-pill--err{background:var(--err-bg);border-color:var(--err-bd);color:var(--err-fg);--dot: var(--err-dot)}.ex-pill--off{background:var(--off-bg);border-color:var(--off-bd);color:var(--off-fg);--dot: var(--off-dot)}.ex-dot{display:block;flex-shrink:0;width:8px;height:8px;border-radius:var(--radius-full);background:var(--dot, var(--off-dot))}.ex-dot--ok{--dot: var(--ok-dot)}.ex-dot--warn{--dot: var(--warn-dot)}.ex-dot--err{--dot: var(--err-dot)}.ex-dot--info{--dot: var(--signal)}.ex-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;flex-shrink:0;padding:2px 5px;border-radius:var(--radius-sm);background:var(--err-banner-bd);color:var(--danger);font-size:11px;line-height:1;font-weight:600}.ex-role{box-sizing:content-box!important;display:inline-flex;align-items:center;height:var(--badge-height);padding:0 var(--space-2);border:1px solid;border-radius:var(--radius-full);font-size:12px;font-weight:500;letter-spacing:.04em;font-variant:small-caps}.ex-role--superadmin{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.ex-role--admin{background:var(--mist);color:var(--ink);border-color:var(--signal)}.ex-role--user{background:var(--surface-subtle);color:var(--fg-2);border-color:var(--line)}.ex-tag{display:inline-flex;align-items:center;margin-left:auto;padding:2px 6px;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-lg);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--on-ink-soft)}.ex-notice{display:flex;align-items:flex-start;gap:var(--space-2\.5);padding:var(--space-3);border:1px solid;border-radius:var(--radius-lg)}.ex-notice>.ex-svg{margin-top:2px}.ex-notice>p{margin:0;font-size:12px}.ex-notice--info{border-color:var(--info-bd);background:var(--info-bg);color:var(--info-fg)}.ex-notice--warning{border-color:var(--warn-bd);background:var(--warn-bg);color:var(--warn-text)}.ex-notice--warning>.ex-svg{color:var(--warn-fg)}.ex-notice--mist{border-color:var(--line);background:var(--mist);color:var(--ink)}.ex-notice--success{border-color:var(--ok-bd);background:var(--ok-bg);color:var(--ok-text)}.ex-banner{display:flex;align-items:flex-start;gap:var(--space-2\.5);padding:var(--space-2\.5) var(--space-3);border:1px solid var(--err-bd);border-radius:var(--radius-input-lg);background:var(--err-bg)}.ex-banner>.ex-svg{margin-top:1px;color:var(--err-fg)}.ex-banner>p{margin:0;font-size:13px;color:var(--err-banner-fg)}.ex-field{display:block;min-width:0}.ex-label{display:block;margin-bottom:var(--space-1\.5);font-size:13px;font-weight:500;color:var(--ink)}.ex-req{color:var(--danger)}.ex-input{width:100%;height:var(--field);padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font-size:14px;outline:none}.ex-input:focus{border-color:var(--signal);box-shadow:var(--shadow-focus-field)}.ex-input[aria-invalid=true]{border-color:var(--danger)}.ex-input--locked,.ex-input--locked:focus{cursor:not-allowed;background:var(--surface-subtle);color:var(--fg-2);border-color:var(--line);box-shadow:none}textarea.ex-input{height:auto;padding:var(--space-2) var(--space-3);resize:vertical}.ex-error{display:flex;align-items:center;gap:var(--space-1\.5);margin:var(--space-1\.5) 0 0;font-size:12px;color:var(--danger)}.ex-hint{margin:var(--space-1\.5) 0 0;font-size:12px;color:var(--fg-2)}.ex-code{display:block;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-subtle);font-family:var(--font-mono);font-size:13px;color:var(--ink);word-break:break-all}.ex-code-block{margin:0;padding:var(--space-3);overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-subtle);font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--ink)}.ex-search{display:flex;align-items:center;gap:var(--space-2);height:var(--control);min-width:240px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.ex-search>.ex-svg{color:var(--fg-2)}.ex-search>input{flex:1;min-width:0;padding:1px 2px;border:none;background:transparent;font-size:14px;color:var(--ink);outline:none}.ex-search:focus-within{border-color:var(--signal)}.ex-switch{position:relative;display:inline-flex;align-items:center;flex-shrink:0;width:36px;height:20px;padding:0;border:none;border-radius:var(--radius-full);background:var(--line);transition:background .15s}.ex-switch>span{display:inline-block;width:14px;height:14px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow-knob);transform:translate(3px);transition:transform .15s}.ex-switch[aria-checked=true]{background:var(--signal)}.ex-switch[aria-checked=true]>span{transform:translate(18px)}.ex-choice{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-2\.5) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:left}.ex-choice:hover{background:var(--surface-tint)}.ex-choice[aria-pressed=true]{border-color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal)}.ex-choice:disabled{opacity:.6}.ex-choice>b{font-size:14px;font-weight:500;color:var(--ink)}.ex-choice>span{font-size:12px;color:var(--fg-2)}.ex-check{display:flex;align-items:center;gap:var(--space-2\.5);font-size:13px;color:var(--fg-2);cursor:pointer;-webkit-user-select:none;user-select:none}.ex-check>input{margin:0;width:16px;height:16px;accent-color:var(--ink)}.ex-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:var(--radius-xl);background:var(--surface);text-align:left;box-shadow:var(--shadow-table)}.ex-table th,.ex-table td{box-sizing:content-box!important;border-bottom:1px solid var(--line);padding:0 var(--space-3)}.ex-table th{height:var(--table-header);font-size:12px;font-weight:600;white-space:nowrap;color:var(--fg-3);text-align:left}.ex-table td{padding:var(--space-2) var(--space-3);font-size:14px;color:var(--ink)}.ex-table tr.ex-row{cursor:pointer;transition:background .15s}.ex-table tr.ex-row:hover{background:var(--row-hover)}.ex-table tr.is-selected{background:var(--mist)}.ex-table tr.ex-subrow{background:#f2f8fb99}.ex-cell-name{display:inline-flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:500;white-space:nowrap;color:var(--ink)}.ex-cell-2{font-size:14px;color:var(--fg-2);white-space:nowrap}.ex-empty{display:flex;align-items:center;justify-content:center;padding:64px 0;font-size:14px;color:var(--fg-2)}.ex-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.ex-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--line);background:var(--surface-faint)}.ex-card-head h2{margin:0;font-size:14px;font-weight:600;color:var(--ink)}.ex-card-head p{margin:2px 0 0;font-size:12px;color:var(--fg-2)}.ex-card-body{padding:var(--space-2) var(--space-6)}.ex-details{margin:0}.ex-detail{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.ex-detail:last-child{border-bottom:none}.ex-detail dt{font-size:14px;color:var(--fg-2)}.ex-detail dd{margin:0;font-size:14px;color:var(--ink)}.ex-stat{padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.ex-stat>span{display:block;font-size:12px;color:var(--fg-3)}.ex-stat>strong{display:block;margin-top:var(--space-1);font-size:14px;font-weight:700;color:var(--ink)}.ex-eyebrow{margin:0;font-size:12px;font-weight:600;color:var(--signal)}.ex-signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-2\.5);width:100%}.ex-signal{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1\.5);padding:var(--space-3\.5) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);text-align:left;box-shadow:var(--shadow-card);--fig: var(--ink)}.ex-signal:hover{background:var(--card-hover)}.ex-signal>span:first-child{display:flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:600;color:var(--fg-3)}.ex-signal>strong{font-size:26px;line-height:1;font-weight:700;color:var(--fig)}.ex-signal>span:last-child{font-size:12px;color:var(--fg-2)}.ex-signal--err{--fig: var(--err-fg);border-color:var(--err-bd)}.ex-signal--warn{--fig: var(--warn-fg)}.ex-signal[aria-pressed=true]{border-color:var(--signal)}.ex-route-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:stretch;gap:5px;width:100%}.ex-rc{display:flex;flex-direction:column;height:100%;cursor:pointer;font-size:14px}.ex-rc--ok{--rc-bg: var(--tone-ok-bg);--rc-bd: var(--tone-ok-bd);--rc-title: var(--tone-ok-title);--rc-muted: var(--tone-ok-muted);--rc-value: var(--tone-ok-value);--rc-icon: var(--ok-fg)}.ex-rc--warn{--rc-bg: var(--tone-warn-bg);--rc-bd: var(--tone-warn-bd);--rc-title: var(--tone-warn-title);--rc-muted: var(--tone-warn-muted);--rc-value: var(--tone-warn-value);--rc-icon: var(--warn-fg)}.ex-rc--err{--rc-bg: var(--tone-err-bg);--rc-bd: var(--tone-err-bd);--rc-title: var(--tone-err-title);--rc-muted: var(--tone-err-muted);--rc-value: var(--tone-err-value);--rc-icon: var(--danger)}.ex-rc--off{--rc-bg: var(--tone-off-bg);--rc-bd: var(--tone-off-bd);--rc-title: var(--tone-off-title);--rc-muted: var(--tone-off-muted);--rc-value: var(--tone-off-value);--rc-icon: var(--off-dot)}.ex-rc-head,.ex-rc-body,.ex-rc-foot{background:var(--rc-bg);border:1px solid var(--rc-bd)}.ex-rc-head{display:flex;align-items:center;min-height:34px;padding:var(--space-2\.5);border-bottom:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.ex-rc-head p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rc-title)}.ex-rc-rule{height:1px;background:var(--rc-bd)}.ex-rc-body{display:grid;gap:var(--space-2);padding:var(--space-2\.5);border-top:0;border-bottom:0}.ex-rc-body>div{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:24px}.ex-rc-body>div>span:first-child{color:var(--rc-muted);white-space:nowrap}.ex-rc-body>div>span:last-child{color:var(--rc-value);text-align:right}.ex-rc-subs{display:grid;gap:var(--space-1\.5);padding:var(--space-2) var(--space-2\.5);border:1px solid var(--rc-bd);border-top:0;border-bottom:0;background:#ffffff8c}.ex-rc-sub{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:-2px -4px;padding:2px 4px;border-radius:var(--radius-md)}.ex-rc-sub:hover{background:#41b6e61f}.ex-rc-sub>span:first-child{display:flex;align-items:center;gap:var(--space-1\.5);min-width:0;font-size:12px;color:var(--ink)}.ex-rc-foot{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:var(--space-2) var(--space-2\.5);border-top:0;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.ex-rc-foot>span{font-size:12px;color:var(--rc-muted)}.ex-rc-foot>button{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 2px;border:none;background:transparent;color:var(--rc-icon)}.ex-spark{display:block;width:104px;flex-shrink:0;padding:2px var(--space-1);border:none;border-radius:var(--radius-lg);background:transparent;cursor:zoom-in!important}.ex-spark:hover{background:var(--row-hover)}.ex-spark polyline{fill:none;stroke:var(--signal);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.ex-modal-layer{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;padding:var(--space-4);min-height:100%}.ex-backdrop{position:absolute;inset:0;background:var(--backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ex-modal{position:relative;z-index:1;box-sizing:content-box!important;display:flex;flex-direction:column;width:100%;max-height:90vh;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-modal)}.ex-modal-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--line)}.ex-modal-head h2{margin:var(--space-1) 0 0;font-size:20px;font-weight:600;color:var(--ink)}.ex-modal-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);font-size:14px;line-height:1.55;color:var(--fg-2)}.ex-modal-body p{margin:0}.ex-modal-foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--line)}.ex-sidebar{position:relative;display:flex;flex-direction:column;flex-shrink:0;width:var(--sidebar);height:100%;padding:0 var(--space-3) var(--space-3);background:var(--ink-deep);color:var(--on-ink)}.ex-sidebar-logo{display:flex;align-items:center;gap:var(--space-2\.5);min-height:var(--topbar);flex-shrink:0}.ex-wordmark{font-size:19px;line-height:1;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--on-ink);-webkit-user-select:none;user-select:none}.ex-nav{display:flex;flex-direction:column;gap:var(--space-3);flex:1;min-height:0;padding-top:var(--space-2)}.ex-nav-section{display:grid;gap:5px}.ex-nav-section>p{margin:0;padding:0 var(--space-2\.5);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--on-ink-label)}.ex-nav-item{display:flex;align-items:center;gap:var(--space-2\.5);min-height:var(--control);padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--on-ink-muted);text-align:left;transition:background .15s}.ex-nav-item:hover{background:var(--on-ink-hover);color:var(--on-ink)}.ex-nav-item[aria-current=page]{background:var(--on-ink-active);color:var(--on-ink)}.ex-nav-item[aria-disabled=true]{color:var(--on-ink-faint);cursor:default!important}.ex-nav-item[aria-disabled=true]:hover{background:var(--on-ink-hover);color:var(--on-ink-faint)}.ex-nav-item>svg{width:16px;height:13px;flex-shrink:0;fill:currentColor}.ex-nav-item>span:not(.ex-tag){font-size:14px;font-weight:500;white-space:nowrap}.ex-sidebar--collapsed{width:var(--sidebar-collapsed);align-items:center;padding:0 var(--space-2\.5) var(--space-2\.5)}.ex-sidebar--collapsed .ex-sidebar-logo{justify-content:center}.ex-sidebar--collapsed .ex-nav{width:100%}.ex-nav-item--icon{justify-content:center;min-height:34px;padding:0}.ex-nav-item--icon>svg{width:16px;height:16px}.ex-sidebar-foot{margin-top:var(--space-2\.5);padding-top:var(--space-2\.5);border-top:1px solid var(--on-ink-hover);flex-shrink:0}.ex-user{display:flex;align-items:center;gap:var(--space-2\.5);width:100%;min-height:42px;padding:0 var(--space-2\.5);border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--on-ink);text-align:left}.ex-user:hover{background:#41b6e624}.ex-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font-size:12px;line-height:1;font-weight:600}.ex-user p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-user p:first-child{font-size:11px;font-weight:600;color:#ffffff80}.ex-user p:last-child{font-size:14px;color:var(--on-ink)}.ex-topbar{display:flex;align-items:center;justify-content:space-between;height:var(--topbar);padding:0 var(--space-6);background:var(--canvas)}.ex-topbar-left{display:flex;align-items:center;gap:var(--space-3)}.ex-toggle{display:inline-flex;align-items:center;justify-content:center;width:var(--control);height:var(--control);border:none;border-radius:var(--radius-lg);background:transparent;color:var(--fg-3);transition:all .15s}.ex-toggle:hover{background:var(--chrome-hover);color:var(--ink)}.ex-dd{position:relative}.ex-dd-trigger{display:flex;align-items:center;height:var(--control-md);padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--ink)}.ex-dd-trigger:hover{background:var(--chrome-hover)}.ex-dd-trigger[aria-expanded=true]{border-color:var(--line);border-bottom-color:transparent;border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--surface)}.ex-dd-trigger--instance{min-width:280px;gap:var(--space-3)}.ex-dd-trigger--instance>b{font-size:16px;line-height:1;font-weight:600;white-space:nowrap}.ex-dd-trigger--lang{min-width:72px;justify-content:space-between;gap:var(--space-2);font-size:14px}.ex-dd-panel{position:absolute;top:var(--control-md);z-index:var(--z-menu);overflow:hidden;border:1px solid var(--line);border-radius:0 0 var(--radius-input-lg) var(--radius-input-lg);background:var(--surface);box-shadow:var(--shadow-dropdown)}.ex-dd-panel--left{left:0;min-width:280px}.ex-dd-panel--right{right:0;min-width:72px}.ex-dd-search{padding:var(--space-3);border-bottom:1px solid var(--line)}.ex-dd-option{display:flex;align-items:center;gap:var(--space-2\.5);width:100%;padding:var(--space-2) var(--space-3);border:none;background:transparent;text-align:left;font-size:14px;white-space:nowrap;color:var(--ink)}.ex-dd-option:hover{background:var(--row-hover)}.ex-dd-option[aria-selected=true]{background:var(--mist)}.ex-dd-option--lang[aria-selected=true]{color:var(--signal);font-weight:500}.ex-mode{display:flex;align-items:center;gap:var(--space-2\.5);height:var(--control-md);padding:0 var(--space-1)}.ex-mode>svg{width:14px;height:14px;fill:var(--signal)}.ex-mode>span{font-size:16px;line-height:1;font-weight:600;white-space:nowrap;color:var(--ink)}.ex-page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-1) 0}.ex-page-title{display:flex;align-items:baseline;gap:var(--space-2\.5);min-width:0}.ex-page-title h1{margin:0;font-size:22px;line-height:1.1;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.ex-page-title span{font-size:13px;white-space:nowrap;color:var(--fg-2)}.ex-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.ex-auth{position:relative;display:flex;align-items:center;justify-content:center;min-height:100%;padding:var(--space-8) var(--space-6);overflow:hidden;background:radial-gradient(900px 600px at 15% 0%,rgba(65,182,230,.22),transparent 60%),radial-gradient(700px 500px at 100% 100%,rgba(65,182,230,.12),transparent 60%),var(--ink)}.ex-auth-dots{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.09) 1px,transparent 1.5px);background-size:32px 32px}.ex-auth-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));align-items:center;gap:var(--space-12);width:100%;max-width:var(--content-auth)}.ex-hero{display:flex;flex-direction:column;gap:22px;color:var(--on-ink)}.ex-hero-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.ex-by{padding:3px var(--space-2);border:1px solid var(--on-ink-line);border-radius:var(--radius-full);font-size:12px;font-weight:600;color:var(--on-ink-soft)}.ex-lang{margin-left:auto;display:flex;gap:2px;padding:3px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-full);background:var(--on-ink-hover)}.ex-lang>button{height:var(--control-sm);padding:0 var(--space-3);border:none;border-radius:var(--radius-full);background:transparent;color:var(--on-ink-muted);font-size:12px;font-weight:600;letter-spacing:.04em;transition:background .15s,color .15s}.ex-lang>button:hover{color:var(--on-ink)}.ex-lang>button[aria-pressed=true]{background:var(--signal);color:var(--ink)}.ex-hero h1{margin:0;font-size:clamp(34px,4.2vw,50px);line-height:1.05;font-weight:800;letter-spacing:-.025em;text-wrap:balance}.ex-hero>p{margin:0;max-width:var(--auth-card);font-size:16px;line-height:1.6;color:var(--on-ink-muted)}.ex-auth-col{width:100%;max-width:var(--auth-card);justify-self:center}.ex-auth-card{display:flex;flex-direction:column;gap:18px;padding:var(--space-8);border-radius:var(--radius-card-lg);background:var(--surface);box-shadow:var(--shadow-auth-card)}.ex-auth-card h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.ex-auth-card h2+p{margin:4px 0 0;font-size:14px;color:var(--fg-2)}.ex-auth-field{display:flex;flex-direction:column;gap:var(--space-1\.5)}.ex-auth-field>span,.ex-auth-field-row>span{font-size:12px;font-weight:600;color:var(--fg-2)}.ex-auth-field-row{display:flex;align-items:center;justify-content:space-between}.ex-auth-input{height:var(--field-lg);padding:0 var(--space-3\.5);border:1px solid var(--line);border-radius:var(--radius-input-lg);background:var(--surface);color:var(--ink);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}.ex-auth-input::placeholder{color:var(--disabled)}.ex-auth-input:focus{border-color:var(--signal);box-shadow:var(--shadow-focus)}.ex-auth-input[aria-invalid=true]{border-color:var(--err-bd)}.ex-auth-note{margin:0;text-align:center;font-size:12px;color:var(--fg-3)}.ex-auth-foot{margin:18px 0 0;text-align:center;font-size:12px;color:var(--on-ink-faint)}.ex-auth-foot>span{color:#ffffffa6}@keyframes ex-card-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@keyframes ex-hero-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes ex-shake{0%,to{transform:none}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes ex-spin{to{transform:rotate(360deg)}}@keyframes ex-drift{0%{transform:translate(0)}50%{transform:translate(-30px,20px)}to{transform:translate(0)}}@keyframes ex-flow{to{offset-distance:100%}}.ex-anim-card-in{animation:ex-card-in .4s ease both}.ex-anim-hero-in{animation:ex-hero-in .6s ease both}.ex-anim-shake{animation:ex-shake .4s ease}.ex-spinner{display:block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.35);border-top-color:var(--on-ink);border-radius:var(--radius-full);animation:ex-spin .8s linear infinite}.ex-flow{position:absolute;inset:0;pointer-events:none}.ex-flow-inner{position:absolute;inset:0;opacity:.9}.ex-flow-svg{position:absolute;inset:0;width:100%;height:100%}.ex-flow-svg path{fill:none;stroke:#41b6e638;stroke-width:1.2;stroke-dasharray:6 10}.ex-flow-dots{position:absolute;inset:0;width:1360px;height:1060px;transform-origin:top left}.ex-flow-dot{position:absolute;width:6px;height:6px;border-radius:var(--radius-full);background:var(--signal);box-shadow:0 0 12px #41b6e6e6;animation-name:ex-flow;animation-timing-function:linear;animation-iteration-count:infinite}.ex-flow-dot--white{background:var(--on-ink)}.ex-flow-blob{position:absolute;left:-10%;top:-20%;width:520px;height:520px;border-radius:var(--radius-full);filter:blur(20px);background:radial-gradient(circle,rgba(65,182,230,.28),transparent 65%);animation:ex-drift 18s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.ex-flow *,.ex-anim-card-in,.ex-anim-hero-in,.ex-anim-shake{animation:none!important}}.ex-strength{display:flex;gap:var(--space-1);margin-top:2px}.ex-strength>span{flex:1;height:4px;border-radius:2px;background:var(--line);transition:background .25s}.ex-strength--1>span:nth-child(-n+1){background:var(--err-fg)}.ex-strength--2>span:nth-child(-n+2){background:var(--warn-fg)}.ex-strength--3>span{background:var(--ok-fg)}.ex-rules{display:grid;gap:var(--space-1);margin-top:2px}.ex-rule{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--fg-3);transition:color .2s}.ex-rule>span{display:grid;place-items:center;width:16px;height:16px;border-radius:var(--radius-full);background:var(--check-idle);color:var(--on-ink);transition:background .2s}.ex-rule.is-ok{color:var(--ok-fg)}.ex-rule.is-ok>span{background:var(--ok-dot)}.ex-auth-field .ex-field-error{font-size:12px;font-weight:400;color:var(--danger)}.ex-pw{position:relative;display:flex}.ex-pw>.ex-auth-input{flex:1;padding-right:46px}.ex-pw>button{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:34px;height:34px;border:none;border-radius:var(--radius-lg);background:transparent;color:var(--fg-3)}.ex-pw>button:hover{background:var(--row-hover);color:var(--ink)}.ex-auth-status{align-items:center;gap:var(--space-3\.5);padding:40px var(--space-8);text-align:center}.ex-auth-status h2{margin:0;font-size:22px;font-weight:700;color:var(--ink)}.ex-auth-status p{margin:0;font-size:14px;line-height:1.55;color:var(--fg-2)}.ex-auth-status strong{font-weight:600;color:var(--ink)}.ex-status-circle{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--radius-full)}.ex-status-circle--ok{width:56px;height:56px;background:var(--ok-bg);color:var(--ok-fg)}.ex-status-circle--done{background:var(--mist);color:var(--signal)}.ex-status-circle--err{background:var(--err-bg);color:var(--err-fg)}.ex-btn--auth-link{width:auto;height:var(--field-lg);padding:0 22px;margin-top:var(--space-2);gap:var(--space-2)}.ex-activity-head{display:flex;align-items:center;gap:var(--space-2\.5);margin-top:var(--space-1)}.ex-activity-head h2{margin:0;font-size:20px;font-weight:600;color:var(--ink)}.ex-activity-head>span:last-child{font-size:13px}.ex-activity-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);overflow-y:auto}.ex-panel{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-tint)}.ex-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1\.5)}.ex-panel-head>span:first-child{font-size:12px;font-weight:600;color:var(--signal)}.ex-panel-head>span:last-child{font-size:11px;color:var(--fg-2)}.ex-chart{position:relative}.ex-chart svg{display:block;width:100%}.ex-chart-grid{stroke:var(--mist);stroke-width:1}.ex-chart-base{stroke:var(--line);stroke-width:1}.ex-chart-label{fill:var(--fg-2);font-size:10px;font-family:Segoe UI,sans-serif;letter-spacing:.08em}.ex-chart-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.ex-chart-edges{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-1\.5);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.ex-chart-axis{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;min-width:28px;padding:2px 0 1px;font-size:10px;font-weight:600;color:var(--fg-2)}.ex-chart-row{display:flex;align-items:stretch;gap:var(--space-2)}.ex-chart-row>.ex-chart{flex:1;min-width:0}.ex-hover-col{position:absolute;top:0;bottom:0;cursor:crosshair;opacity:0}.ex-hover-col:hover,.ex-hover-col.is-shown{opacity:1}.ex-hover-col>i{position:absolute;top:0;bottom:0;left:50%;width:0;border-left:1px dashed var(--ink);pointer-events:none}.ex-hover-col>b{position:absolute;left:50%;width:9px;height:9px;box-sizing:border-box;border:2px solid var(--surface);border-radius:var(--radius-full);transform:translate(-50%,-50%);pointer-events:none}.ex-hover-col>span{position:absolute;left:50%;transform:translate(-50%);padding:1px var(--space-1\.5);border-radius:var(--radius-md);background:var(--chart-chip);white-space:nowrap;pointer-events:none}.ex-hover-col>span:first-of-type{top:2px;font-size:11px;font-weight:700}.ex-hover-col>span:last-of-type{bottom:0;font-size:10px;font-weight:600;color:var(--fg-2)}.ex-runs{display:grid;gap:var(--space-1);margin-top:var(--space-2\.5)}.ex-run{display:grid;grid-template-columns:1.4fr .7fr .9fr .7fr 1fr;gap:var(--space-2);align-items:center;padding:var(--space-1\.5) var(--space-2\.5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font-size:13px;color:var(--ink)}.ex-run>span:first-child{color:var(--fg-2)}.ex-run--head{padding-top:0;padding-bottom:0;border:none;background:transparent;font-size:12px;font-weight:600}.ex-run--head>span,.ex-run--head>span:first-child{color:var(--fg-3)}.ex-run-status{display:inline-flex;align-items:center;justify-content:center;justify-self:start;gap:var(--space-1\.5);height:22px;padding:0 var(--space-2);border:1px solid;border-radius:var(--radius-lg);font-size:12px;font-weight:500;white-space:nowrap}.ex-run-status>i{display:block;width:6px;height:6px;border-radius:var(--radius-full);background:var(--dot)}.ex-run-status--done{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg);--dot: var(--ok-dot)}.ex-run-status--fail{background:var(--err-bg);border-color:var(--err-bd);color:var(--err-fg);--dot: var(--err-dot)}.ex-run-status--busy{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn-fg);--dot: var(--warn-dot)}.ex-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-2)}.ex-date{height:34px;padding:0 var(--space-2\.5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font-size:13px;color:var(--ink)}.ex-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-tint)}.ex-no-data>svg{width:22px;height:22px;fill:var(--line)}.ex-no-data>p{margin:0;font-size:14px;color:var(--fg-2)}.ex-page{padding:var(--space-2) var(--space-6) var(--space-6)}.ex-page-intro{display:flex;align-items:baseline;gap:var(--space-2\.5);padding:var(--space-1) 0 var(--space-3\.5)}.ex-page-intro h1{margin:0;font-size:22px;line-height:1.1;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.ex-page-intro span{font-size:13px;color:var(--fg-2)}.ex-faq{display:flex;flex-direction:column;gap:var(--space-2\.5);max-width:768px}.ex-faq-search{position:relative}.ex-faq-search>.ex-svg{position:absolute;top:50%;left:var(--space-3\.5);transform:translateY(-50%);color:var(--signal);pointer-events:none}.ex-faq-search>input{width:100%;height:var(--field);padding:0 40px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font-size:14px;color:var(--ink);outline:none}.ex-faq-search>input:focus{border-color:var(--signal);box-shadow:var(--shadow-focus-field)}.ex-faq-cat{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.ex-faq-cat-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-4) var(--space-5);border:0;border-bottom:1px solid var(--line);background:var(--surface-faint);text-align:left}.ex-faq-cat-head:hover{background:var(--surface-subtle)}.ex-faq-cat-head[aria-expanded=false]{border-bottom-color:transparent}.ex-faq-cat-head>div{display:flex;align-items:center;gap:var(--space-3)}.ex-faq-cat-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-lg);background:var(--mist)}.ex-faq-cat-icon>svg{width:15px;height:15px;fill:var(--signal)}.ex-faq-cat-head h2{margin:0;font-size:14px;font-weight:600;color:var(--ink)}.ex-faq-cat-head div>span{font-size:12px;color:var(--fg-2)}.ex-faq-cat-head>.ex-svg{color:var(--fg-2);transition:transform .15s}.ex-faq-cat-head[aria-expanded=false]>.ex-svg{transform:rotate(-90deg)}.ex-faq-q{border-bottom:1px solid var(--line)}.ex-faq-q:last-child{border-bottom:none}.ex-faq-q>button{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);border:none;background:transparent;text-align:left}.ex-faq-q>button:hover{background:var(--surface-subtle)}.ex-faq-q>button>span{font-size:14px;line-height:1.4;font-weight:500;color:var(--ink)}.ex-faq-q>button>.ex-svg{margin-top:2px;color:var(--fg-2);transition:transform .15s}.ex-faq-q>button[aria-expanded=true]>span,.ex-faq-q>button[aria-expanded=true]>.ex-svg{color:var(--signal)}.ex-faq-q>button[aria-expanded=true]>.ex-svg{transform:rotate(180deg)}.ex-faq-a{padding:0 var(--space-5) var(--space-5)}.ex-faq-a>p{margin:0;font-size:14px;line-height:1.6;color:var(--fg-2)}.ex-faq-link{display:inline-flex;align-items:center;gap:var(--space-1\.5);margin-top:var(--space-3);padding:0;border:none;background:transparent;font-size:12px;font-weight:600;color:var(--signal)}.ex-faq-link:hover{color:var(--signal-hover)}.ex-faq-more{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-2);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--mist)}.ex-faq-more p{margin:0}.ex-faq-more p:first-child{font-size:14px;font-weight:600;color:var(--ink)}.ex-faq-more p:last-child{margin-top:2px;font-size:12px;color:var(--fg-2)}.ex-soon-chip{display:inline-flex;flex-shrink:0;align-items:center;gap:var(--space-1\.5);padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2)}.ex-soon-chip>svg{width:13px;height:13px;fill:currentColor}.ex-soon-tag{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid var(--line);border-radius:var(--radius-lg);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--fg-2)}.ex-settings-tabs{display:flex;gap:var(--space-1);margin-top:var(--space-3);border-bottom:1px solid var(--line)}.ex-settings-tabs .ex-tab>svg{width:13px;height:13px;fill:currentColor}.ex-settings-body{max-width:672px;margin:var(--space-2\.5) 0}.ex-pref-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--fg-3)}.ex-pref-head>span:last-child{margin-right:var(--space-1)}.ex-pref{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3\.5) 0;border-bottom:1px solid var(--line)}.ex-pref:last-child{border-bottom-color:transparent}.ex-pref>div:first-child{flex:1;min-width:0}.ex-pref p{margin:0}.ex-pref p:first-child{display:flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:500;color:var(--ink)}.ex-pref p:last-child{margin-top:2px;font-size:12px;color:var(--fg-2)}.ex-pref.is-soon p:first-child{color:var(--fg-2)}.ex-pref>div:last-child{display:flex;flex-shrink:0;align-items:center;margin-left:var(--space-6)}.ex-pref.is-soon>div:last-child{opacity:.6}.ex-card-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4)}.ex-avatar-lg{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:56px;height:56px;border-radius:var(--radius-full);background:var(--ink);color:var(--on-ink);font-size:18px;font-weight:700}.ex-live{display:flex;align-items:center;gap:var(--space-1\.5);font-size:12px;font-weight:500;color:var(--ok-fg)}.ex-live>i{display:block;width:8px;height:8px;border-radius:var(--radius-full);background:var(--api-live)}.ex-issues{display:flex;flex-direction:column;gap:var(--space-2\.5);max-width:440px}.ex-issue{display:flex;flex-direction:column;gap:var(--space-1\.5);padding:var(--space-3) var(--space-3\.5);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.ex-issue>div:first-child{display:flex;align-items:center;gap:var(--space-2)}.ex-issue strong{font-size:13px;font-weight:600;color:var(--ink)}.ex-issue>p{margin:0;font-size:13px;line-height:1.5;color:var(--fg-2)}.ex-issue>p.ex-issue-action{font-size:12px;color:var(--ink)}.ex-issue>p.ex-issue-action>b{font-weight:600}.ex-issue-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:2px}.ex-btn-xs{display:inline-flex;align-items:center;height:var(--control-sm);padding:0 var(--space-2\.5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);font-size:12px;font-weight:500;color:var(--ink)}.ex-btn-xs:hover{background:var(--row-hover)}.ex-btn-xs--primary{border:none;background:var(--ink);color:var(--on-ink)}.ex-btn-xs--primary:hover{background:var(--ink-hover)}.ex-btn-xs:disabled{opacity:.6}.ex-retry-note{font-size:12px;font-weight:600;color:var(--ok-fg)}.ex-issues-empty{margin:0;font-size:13px;color:var(--fg-2)}.ex-payload{max-width:768px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card)}.ex-payload-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);background:var(--surface-faint)}.ex-payload-head h2{margin:0;font-size:14px;font-weight:600;color:var(--ink)}.ex-payload-head p{margin:2px 0 0;font-size:12px;color:var(--fg-2)}.ex-payload-body{display:flex;flex-direction:column;gap:var(--space-2\.5);padding:var(--space-4)}.ex-payload-error{display:flex;align-items:flex-start;gap:var(--space-2\.5);padding:var(--space-2\.5) var(--space-3);border:1px solid var(--err-banner-bd);border-radius:var(--radius-lg);background:var(--err-banner-bg)}.ex-payload-error>svg{width:13px;height:13px;margin-top:2px;flex-shrink:0;fill:var(--danger)}.ex-payload-error>p{margin:0;font-size:13px;color:var(--err-banner-fg)}:root{--ink:#003057;--ink-hover:#00446e;--ink-deep:#002a4d;--button-primary-hover:#0a4270;--signal:#41b6e6;--signal-hover:#2ea9dc;--mist:#e6f4f9;--mist-hover:#d9eef7;--canvas:#f3f7fa;--surface:#ffffff;--line:#e2ebf1;--surface-subtle:#f2f8fb;--surface-faint:#fafcfd;--row-hover:#f3f8fb;--chrome-hover:#e8eff5;--surface-tint:#f8fcfd;--card-hover:#f9fcfd;--chart-chip:rgba(248, 252, 253, .92);--fg-2:#58728a;--fg-3:#7a90a3;--danger:#c44536;--disabled:#a8b9c7;--check-idle:#d5dfe7;--scrollbar-thumb:#cbd8e2;--backdrop:rgba(0, 42, 77, .45);--focus-outline:rgba(65, 182, 230, .5);--ok-bg:#ecfdf5;--ok-bd:#a7f3d0;--ok-fg:#059669;--ok-dot:#10b981;--ok-text:#065f46;--api-live:#34d399;--warn-bg:#fffbeb;--warn-bd:#fde68a;--warn-fg:#d97706;--warn-dot:#fbbf24;--warn-text:#92400e;--err-bg:#fef2f2;--err-bd:#fecaca;--err-fg:#dc2626;--err-dot:#ef4444;--err-banner-bg:#fff8f7;--err-banner-bd:#fff1ef;--err-banner-fg:#b91c1c;--off-bg:#f9fafb;--off-bd:#e5e7eb;--off-fg:#6b7280;--off-dot:#9ca3af;--info-bg:#eff6ff;--info-bd:#dbeafe;--info-fg:#2563eb;--tone-ok-bg:#f5fbf7;--tone-ok-bd:#dff0e4;--tone-ok-title:#047857;--tone-ok-muted:rgba(4, 120, 87, .75);--tone-ok-value:var(--ok-text);--tone-warn-bg:#fffbf2;--tone-warn-bd:#fff4df;--tone-warn-title:#b45309;--tone-warn-muted:rgba(180, 83, 9, .8);--tone-warn-value:var(--warn-text);--tone-err-bg:var(--err-banner-bg);--tone-err-bd:var(--err-banner-bd);--tone-err-title:var(--err-banner-fg);--tone-err-muted:rgba(185, 28, 28, .75);--tone-err-value:#991b1b;--tone-off-bg:#f6f7f8;--tone-off-bd:var(--off-bd);--tone-off-title:#475569;--tone-off-muted:#64748b;--tone-off-value:#334155;--on-ink:#ffffff;--on-ink-muted:rgba(255, 255, 255, .72);--on-ink-soft:rgba(255, 255, 255, .55);--on-ink-faint:rgba(255, 255, 255, .45);--on-ink-label:rgba(255, 255, 255, .4);--on-ink-line:rgba(255, 255, 255, .18);--on-ink-active:rgba(255, 255, 255, .12);--on-ink-hover:rgba(255, 255, 255, .08);--mark-orange:#f37314;--mark-blue:#267fe8;--space-0\.5:2px;--space-1:4px;--space-1\.5:6px;--space-2:8px;--space-2\.5:10px;--space-3:12px;--space-3\.5:14px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-input-lg:10px;--radius-xl:12px;--radius-card-lg:18px;--radius-full:999px;--shadow-card:0 1px 2px rgba(0, 48, 87, .04);--shadow-table:0 0 0 1px #e2ebf1, 0 1px 2px rgba(0, 48, 87, .04);--shadow-dropdown:0 8px 24px rgba(0, 48, 87, .08);--shadow-menu:0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-modal:0 24px 64px rgba(0, 48, 87, .22);--shadow-auth-card:0 30px 80px rgba(0, 20, 40, .45), 0 0 0 1px rgba(255, 255, 255, .08);--shadow-focus:0 0 0 4px rgba(65, 182, 230, .18);--shadow-focus-field:0 0 0 3px rgba(65, 182, 230, .18);--shadow-knob:0 1px 2px rgba(0, 0, 0, .1);--control-xs:22px;--badge-height:24px;--control-sm:28px;--control:36px;--control-md:38px;--field:40px;--table-header:44px;--field-lg:46px;--button-lg:48px;--topbar:58px;--sidebar-collapsed:64px;--sidebar:248px;--auth-card:440px;--modal:720px;--content-auth:1040px;--z-menu:50;--z-modal:95;--font-sans:"Plus Jakarta Sans", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, Menlo, monospace}:root{--accent-text:#0b6a93;--lbl-onhold:#db2777;--lbl-waiting:#dc2626;--lbl-todo:#d97706;--lbl-ongoing:#16a34a;--lbl-test:#2563eb;--lbl-validated:#0d9488;--lbl-prod:#7c3aed;--t-err:#b91c1c;--t-warn:#92400e;--t-ok:#065f46}.p-app{width:1440px;height:900px;display:flex;overflow:hidden;position:relative;box-sizing:border-box;background:var(--canvas);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased}.p-app a{color:var(--accent-text);text-decoration:none}.p-app *{box-sizing:border-box}.p-i{flex-shrink:0;display:block}.t-err{color:var(--t-err)!important}.t-warn{color:var(--t-warn)!important}.t-ok{color:var(--t-ok)!important}.t-mute{color:var(--fg-2)!important}.p-sidebar .ex-nav-item{color:var(--on-ink-muted)}.p-sidebar .ex-nav-item[aria-current=page]{color:var(--on-ink)}.p-sidebar .ex-nav-item>svg{width:18px;height:18px;fill:none}.p-sidebar .ex-nav-item>span:not(.ex-tag){font-size:15px}.p-sidebar .ex-nav-section>p{font-size:12px}.p-navcount{margin-left:auto;min-width:26px;text-align:center;padding:2px 8px;border-radius:999px;background:#ffffff29;color:#fff;font-size:12px;font-weight:600;line-height:1.3}.p-topbar-r{display:flex;align-items:center;gap:16px}.p-sync{font-size:13px;color:var(--fg-2)}.p-topbar .ex-live{font-size:13px}.p-main{flex:1;min-width:0;display:flex;flex-direction:column}.p-content{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px;padding:12px 28px 24px;overflow:hidden}.p-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.p-head h1{margin:0;font-size:26px;line-height:1.15;font-weight:700;letter-spacing:-.01em}.p-head p{margin:4px 0 0;font-size:14px;color:var(--fg-2)}.p-tools{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.p-app .ex-seg>button{font-size:14px;color:var(--fg-2);padding:0 12px}.p-app .ex-seg>button[aria-pressed=true]{background:var(--mist);color:var(--ink);font-weight:600}.p-app .ex-tabs{gap:4px}.p-app .ex-tab{font-size:15px;color:var(--fg-2);text-decoration:none;padding:8px 12px}.p-app .ex-tab:hover{color:var(--ink)}.p-app .ex-tab[aria-selected=true]{color:var(--ink);font-weight:600}.p-app .ex-link{color:var(--accent-text);font-size:14px}.p-app .ex-eyebrow{color:var(--accent-text);font-size:13px}.p-app .ex-table th{color:var(--fg-2);font-size:13px;height:40px}.p-app .ex-table td{font-size:14px}.p-app .ex-pill{font-size:13px}.p-app .ex-btn{font-size:14px;text-decoration:none}.p-app .ex-btn-xs{font-size:13px;gap:6px;text-decoration:none;white-space:nowrap;color:var(--ink)}.p-app .ex-btn-xs--primary,.p-app .ex-btn--primary{color:var(--on-ink)}.p-app .ex-check{font-size:14px;color:var(--ink)}.p-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;margin-left:6px;padding:0 7px;border-radius:999px;background:var(--surface-subtle);border:1px solid var(--line);color:var(--ink);font-size:12px;font-weight:600}.p-dd{gap:8px}.p-dd-v{color:var(--fg-2);font-weight:400}.p-search{min-width:220px}.p-notice{align-items:center;padding:10px 14px}.p-notice p{margin:0;font-size:14px;line-height:1.45}.p-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);display:flex;flex-direction:column;min-height:0;overflow:hidden}.p-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.p-card-h h2{margin:0;font-size:16px;font-weight:700}.p-card-h p{margin:2px 0 0;font-size:13px;color:var(--fg-2)}.p-card-f{margin-top:auto;position:relative;z-index:2;background:var(--surface);padding:10px 18px;border-top:1px solid var(--line);font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--fg-2)}.p-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.p-kpi{display:flex;flex-direction:column;gap:4px;padding:12px 18px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);color:var(--ink)!important}.p-kpi:hover{background:var(--card-hover)}.p-kpi .l{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--fg-2)}.p-kpi .v{font-size:34px;line-height:1.05;font-weight:700;letter-spacing:-.02em}.p-kpi .s{font-size:13px;color:var(--fg-2);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-kpi.err .v{color:var(--err-fg)}.p-kpi.warn .v{color:var(--tone-warn-title)}.p-kpi.ok .v{color:var(--ok-fg)}.p-av{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--on-ink);font-size:11px;font-weight:700;flex-shrink:0;letter-spacing:.02em}.p-av.s{width:24px;height:24px;font-size:10px}.p-av.l{width:36px;height:36px;font-size:13px}.p-av.none{background:var(--surface-subtle);color:var(--fg-2);border:1px dashed var(--fg-3)}.p-avs{display:inline-flex;padding-left:6px}.p-avs .p-av{margin-left:-6px;border:2px solid var(--surface)}.p-av.more{background:var(--surface-subtle);color:var(--ink)}.p-avwrap{position:relative;display:inline-flex}.p-avwrap .st{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;border:2px solid var(--surface)}.st.bezig{background:var(--ok-dot)}.st.laatst{background:var(--off-dot)}.st.afwezig{background:var(--warn-dot)}.p-lbl{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);white-space:nowrap}.p-lbl i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.p-crit{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;background:var(--ink);color:var(--on-ink);font-size:12px;font-weight:600}.p-dl,.p-meta-i{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.p-dl{font-weight:600}.p-task{display:flex;flex-direction:column;gap:6px;padding:11px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--ink)!important}.p-task:hover{background:var(--row-hover)}.p-task.live{border-color:var(--ok-bd);box-shadow:0 0 0 1px var(--ok-bd)}.p-task .tt{font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.p-task .mt{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;color:var(--fg-2)}.p-task-live{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ok-text)}.p-task-stop{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:1px solid var(--ok-bd);color:var(--ok-text)}.p-load{display:block;flex:1;height:6px;border-radius:3px;background:var(--line);overflow:hidden;min-width:24px}.p-load>i{display:block;height:100%;border-radius:3px;background:var(--ink)}.p-load.ok>i{background:var(--ink)}.p-load.low>i{background:var(--signal)}.p-load.warn>i{background:var(--warn-dot)}.p-load.err>i{background:var(--err-dot)}.p-act{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:14px;align-items:center;padding:9px 18px;border-top:1px solid var(--line)}.p-act:first-child{border-top:none}.p-act .dot{width:10px;height:10px;border-radius:50%}.p-act .dot.err{background:var(--err-dot)}.p-act .dot.warn{background:var(--warn-dot)}.p-act .dot.info{background:var(--signal)}.p-act b{display:block;font-size:15px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-act span.m{display:block;margin-top:2px;font-size:13px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-trow{display:grid;grid-template-columns:30px minmax(0,1fr) 84px;gap:12px;align-items:center;padding:3px 18px;min-height:42px}.p-trow .n{display:block;font-size:14px;font-weight:600;line-height:1.25}.p-trow .a{display:block;font-size:13px;line-height:1.3;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-trow .a.bezig{color:var(--ok-text)}.p-trow .w{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;font-weight:600}.p-trow .w .p-load{width:84px;flex:none}.p-people{position:relative;display:flex;gap:8px;overflow:hidden;padding-right:44px}.p-people-more{position:absolute;right:0;top:0;bottom:0;width:44px;display:flex;align-items:center;justify-content:flex-end;background:linear-gradient(90deg,rgba(243,247,250,0),var(--canvas) 45%)}.p-people-more span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--ink)}.p-pc{flex:0 0 auto;display:flex;align-items:center;gap:8px;height:48px;padding:0 12px 0 8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink)!important;font-size:14px}.p-pc.on{border-color:var(--signal);background:var(--mist)}.p-pc .c{font-weight:700}.p-pc .p-load{width:34px;flex:none;height:5px}.p-cols{flex:1;min-height:0;display:flex;gap:12px;overflow:hidden}.p-col{flex:0 0 272px;display:flex;flex-direction:column;min-height:0;background:var(--surface-faint);border:1px solid var(--line);border-radius:var(--radius-xl);overflow:hidden}.p-col-h{padding:12px 14px;background:var(--surface);border-bottom:1px solid var(--line)}.p-col-h .r1{display:flex;align-items:center;gap:10px}.p-col-h h2{margin:0;font-size:15px;font-weight:700;line-height:1.25}.p-col-h p{margin:1px 0 0;font-size:13px;color:var(--fg-2)}.p-col-h .r2{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:600;white-space:nowrap}.p-col-b{flex:1;min-height:0;overflow:hidden;padding:8px 10px 10px;display:flex;flex-direction:column;gap:8px}.p-grp{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 4px 0;font-size:13px;font-weight:700;color:var(--fg-2)}.p-grp span{display:inline-flex;align-items:center;gap:6px}.p-fold{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border:1px dashed var(--fg-3);border-radius:var(--radius-lg);font-size:13px;color:var(--fg-2)}.p-fold span{display:inline-flex;align-items:center;gap:8px}.p-fold b{color:var(--ink)}.p-more{padding:2px 4px;font-size:13px;font-weight:600;color:var(--accent-text)}.p-heat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:33px;border-radius:var(--radius-md);font-size:14px;font-weight:600;line-height:1.1;border:1px solid transparent}.p-heat small{font-size:11px;font-weight:500;margin-top:2px}.h-norm{background:var(--surface);border-color:var(--line);color:var(--ink)}.h-low{background:var(--mist);color:var(--accent-text)}.h-warn{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--t-warn)}.h-err{background:var(--err-bg);border-color:var(--err-bd);color:var(--t-err)}.h-off{background:repeating-linear-gradient(135deg,var(--off-bg) 0 6px,#eef0f3 6px 12px);border-color:var(--off-bd);color:var(--off-fg)}.h-bl{background:var(--surface-subtle);border-color:var(--line);color:var(--ink)}.h-bl.hi{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--t-warn)}.p-sw{display:inline-block;width:18px;height:12px;border-radius:3px;border:1px solid var(--fg-3);vertical-align:-1px;background:var(--surface)}.p-bullet{position:relative;height:10px;border-radius:5px;background:var(--line)}.p-bullet>i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--ink)}.p-bullet>b{position:absolute;top:-5px;width:2px;height:20px;border-radius:1px;background:var(--err-dot)}.p-bullet.ok>b{background:var(--fg-3)}.p-mx{border-collapse:separate;border-spacing:4px;width:100%}.p-mx th{font-size:12px;font-weight:600;color:var(--fg-2);text-align:center;padding:0 0 2px}.p-mx th.l,.p-mx td.l{text-align:left}.p-mx td{height:29px;text-align:center;font-size:14px;font-weight:600;border-radius:6px}.p-mx td.l{font-weight:600;padding-right:6px;white-space:nowrap}.m0{background:var(--surface-subtle);color:var(--fg-2)}.m1{background:#d9eef7;color:var(--ink)}.m2{background:#a8d8ee;color:var(--ink)}.m3{background:#5bb3dc;color:#002a4d}.m4{background:#0b6a93;color:#fff}.p-mx td.tot{background:none;font-weight:700;color:var(--ink)}.p-mx tr.sum td{background:none;color:var(--ink);font-weight:700;border-top:1px solid var(--line)}.p-row{display:flex;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--line)}.p-row:first-child{border-top:none}.p-row .main{flex:1;min-width:0}.p-row .main b{display:block;font-size:14px;font-weight:600;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.p-row.wrap .main b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.p-row.live{background:var(--ok-bg)}.p-row .main span{display:block;font-size:13px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-circ{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:2px solid var(--fg-3);flex-shrink:0;background:var(--surface)}.p-circ.on{background:var(--ok-dot);border-color:var(--ok-dot);color:#fff}.p-playbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);flex-shrink:0}.p-playbtn.on{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-text)}.p-sec{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 8px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2);border-top:1px solid var(--line);background:var(--surface-faint)}.p-sec:first-child{border-top:none}.p-sec span:last-child{text-transform:none;letter-spacing:0;font-weight:500}.p-scrim{position:absolute;inset:0;background:#002a4d61}.p-drawer{position:absolute;top:0;right:0;bottom:0;width:620px;background:var(--surface);box-shadow:var(--shadow-modal);display:flex;flex-direction:column}.p-drawer-h{padding:18px 24px 14px;border-bottom:1px solid var(--line)}.p-drawer-h h2{margin:4px 0 0;font-size:21px;line-height:1.25;font-weight:700}.p-drawer-b{flex:1;min-height:0;overflow:hidden;padding:16px 24px;display:flex;flex-direction:column;gap:18px}.p-drawer-f{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 24px;border-top:1px solid var(--line);background:var(--surface-faint)}.p-fs h3{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2)}.p-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.p-app .ex-label{font-size:13px}.p-app .ex-input{font-size:15px}.p-kv{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}.p-kv:first-child{border-top:none}.p-kv>span:first-child{color:var(--fg-2)}.p-tog{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:13px;color:var(--ink)}.p-tog.on{border-color:var(--ink);background:var(--mist);font-weight:600}.p-quick{display:flex;gap:8px;flex-wrap:wrap}.p-cand{display:grid;grid-template-columns:22px 30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-lg)}.p-cand.on{border-color:var(--ink);background:var(--mist)}.p-cand b{display:block;font-size:14px}.p-cand span.m{display:block;font-size:13px;color:var(--fg-2)}.p-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--fg-3);background:var(--surface)}.p-radio.on{border:6px solid var(--ink)}.p-tl{position:relative;overflow:hidden}.p-tl-row{display:flex;align-items:center;height:32px;border-top:1px solid var(--line)}.p-tl-row.sub{height:28px;background:var(--surface-faint)}.p-tl-l{width:300px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 14px;font-size:14px;white-space:nowrap;overflow:hidden;border-right:1px solid var(--line);height:100%}.p-tl-row.sub .p-tl-l{padding-left:34px;font-size:13px;color:var(--ink)}.p-tl-l .nm{overflow:hidden;text-overflow:ellipsis}.p-tl-lane{position:relative;flex:1;height:100%}.p-tl-bar{position:absolute;top:9px;height:14px;border-radius:7px;background:var(--line)}.p-tl-bar>i{position:absolute;left:0;top:0;bottom:0;border-radius:7px;background:var(--ink)}.p-tl-bar.err{background:var(--err-bd)}.p-tl-bar.err>i{background:var(--err-dot)}.p-tl-row.sub .p-tl-bar{top:8px;height:12px;background:#dbe6ee}.p-tl-row.sub .p-tl-bar.crit{background:var(--ink)}.p-tl-row.sub .p-tl-bar.fase{top:10px;height:8px;background:var(--signal)}.p-tl-tag{position:absolute;top:7px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--ink)}.p-tl-row.sub .p-tl-tag{top:6px;font-weight:500;color:var(--fg-2)}.p-backchip{position:absolute;top:6px;display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:999px;background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--t-warn)!important;font-size:12px;font-weight:600;white-space:nowrap}.p-fase{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;background:var(--mist);color:var(--ink);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0}.p-leg{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--fg-2);white-space:nowrap}.p-tabrow{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.p-tabrow .ex-tabs{border-bottom:none}.p-tabrow .p-tools{padding-bottom:6px}.p-filterchip{border:none;background:none;padding:0;cursor:pointer}.p-app.m-app{width:390px;height:844px;flex-direction:column}.m-top{display:flex;align-items:center;justify-content:space-between;height:58px;padding:0 16px;background:var(--ink-deep);color:var(--on-ink);flex-shrink:0}.m-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:14px 16px 0;overflow:hidden}.m-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--line)}.m-row:first-child{border-top:none}.m-row .main{flex:1;min-width:0}.m-row .main b{display:block;font-size:15px;font-weight:600;line-height:1.3}.m-row .main span{display:block;margin-top:2px;font-size:13px;color:var(--fg-2)}.m-peer{flex:0 0 176px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--ok-bd);border-radius:var(--radius-lg);background:var(--surface)}.m-peer p{margin:0;font-size:12px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-peer p b{color:var(--ink)}.m-seg{align-self:flex-start}.m-seg>button{height:40px!important;padding:0 14px!important}.m-nav{display:flex;border-top:1px solid var(--line);background:var(--surface);flex-shrink:0}.m-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0 14px;font-size:12px;font-weight:500;color:var(--fg-2)!important}.m-nav a[aria-current=page]{color:var(--accent-text)!important;font-weight:700}.p-app button.p-task{appearance:none;font:inherit;text-align:left;width:100%;cursor:pointer;margin:0}.p-app button.p-grp{appearance:none;font:inherit;background:none;border:none;width:100%;cursor:pointer;padding:6px 4px 0;color:var(--fg-2)}.p-app button.p-grp:hover{color:var(--ink)}.p-app button.p-fold{appearance:none;font:inherit;background:transparent;cursor:pointer;color:var(--fg-2)}.p-app button.p-fold:hover{border-style:solid;background:var(--surface);color:var(--ink)}.p-app button.p-fold[aria-pressed=true]{border-style:solid;border-color:var(--ink);background:var(--mist);color:var(--ink);font-weight:600}.p-app button.ex-link{appearance:none;background:none;border:none;padding:0;font-family:inherit;line-height:inherit;cursor:pointer}.p-app button.ex-user{appearance:none;font:inherit;background:none;border:none;cursor:pointer;text-align:left;width:100%}.p-app button.p-kpi{appearance:none;font:inherit;text-align:left;cursor:pointer;width:100%}.p-app button.ex-nav-item{appearance:none;font:inherit;width:100%;cursor:pointer}.p-app button.p-tog,.p-app button.p-cand{appearance:none;font:inherit;cursor:pointer}.p-app button.p-cand{text-align:left;width:100%;background:var(--surface)}.p-app button.p-cand.on{background:var(--mist)}.p-app button.p-scrim{appearance:none;border:none;padding:0;margin:0;cursor:default}.p-app .p-col-b{overflow-y:auto;scrollbar-width:thin}.p-col-f{flex:none;display:flex;gap:8px;padding:8px 10px 10px;border-top:1px solid var(--line);background:var(--surface-faint)}.p-app .p-col-f button.p-fold{flex:1 1 auto;min-width:0;padding:8px 10px;font-size:13px}.p-listh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 4px 2px;font-size:13px;color:var(--fg-2)}.p-listh b{display:block;color:var(--ink);font-size:14px}.p-listh i{display:block;font-style:normal}.p-closeall{align-self:flex-start}.p-empty{margin:8px 4px;font-size:14px;color:var(--fg-2)}.p-app .p-cols{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--fg-3) transparent}.p-app .p-col{flex:0 0 258px}.p-nocols{align-self:flex-start}.p-ddwrap{position:relative;display:inline-flex}.p-app .p-dd[aria-expanded=true]{border-color:var(--ink);background:var(--mist)}.p-app button.p-dd-scrim{position:fixed;inset:0;z-index:40;appearance:none;background:transparent;border:none;padding:0;margin:0;cursor:default}.p-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:41;width:424px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);overflow:hidden}.p-pop-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 10px;border-bottom:1px solid var(--line);font-size:13px;font-weight:700;color:var(--fg-2)}.p-pop-acts{display:flex;gap:16px}.p-pop-acts .ex-link{font-size:13px}.p-pop-b{max-height:560px;overflow-y:auto;padding:6px;display:flex;flex-direction:column}.p-opt{display:grid;grid-template-columns:16px 24px minmax(0,1fr) 24px 104px;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-lg);font-size:14px;color:var(--ink);cursor:pointer}.p-opt:hover{background:var(--row-hover)}.p-opt input{margin:0;width:16px;height:16px;accent-color:var(--ink);cursor:pointer}.p-opt .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-opt:not(.on) .nm,.p-opt:not(.on) .c{color:var(--fg-2)}.p-opt .c{font-weight:700;text-align:right}.p-opt .ld{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:13px;font-weight:600}.p-opt .ld .p-load{flex:none;width:48px;height:5px}.p-opt-pct{min-width:44px;text-align:right}.p-pop-f{padding:9px 16px;border-top:1px solid var(--line);background:var(--surface-faint);font-size:12px;color:var(--fg-2)}.p-hrow{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.p-hrow .ex-label{margin:0;min-width:132px}.p-app .p-row .main .sc-interp{display:inline;white-space:inherit;overflow:visible}.p-mw{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:16px}.p-mw .p-sec{text-transform:none;letter-spacing:0}.p-mw .p-sec span:first-child{color:var(--ink)}.p-mw-tabs{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:4px 18px 0;border-bottom:1px solid var(--line)}.p-mw-tabs .ex-tabs{border-bottom:none}.p-mw-tabs .ex-btn-xs{margin-bottom:8px}.p-tabn{margin-left:2px;font-weight:700;color:var(--fg-2)}.ex-tab[aria-selected=true] .p-tabn{color:inherit}.p-mw-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-mw-old{padding:10px 18px 6px}.p-mw-old .ex-notice{display:flex;align-items:center;gap:12px}.p-mw-old .ex-notice p{flex:1}.p-mw-old .ex-btn-xs{flex:none}.p-mw-empty{padding:12px 18px}.p-app .p-mrow{gap:12px;padding:6px 18px}.p-app .p-mrow:hover{background:var(--row-hover)}.p-app .p-mrow.live,.p-app .p-mrow.live:hover{background:var(--ok-bg)}.p-app button.p-circ{appearance:none;padding:0;cursor:pointer;color:transparent}.p-app button.p-circ:hover{border-color:var(--ok-dot);color:var(--ok-dot)}.p-app button.p-playbtn{appearance:none;padding:0;cursor:pointer}.p-app button.p-playbtn:hover{border-color:var(--ink)}.p-mrow-main{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 100px 150px 100px;align-items:center;gap:12px;appearance:none;background:none;border:none;margin:0;padding:6px 0;font:inherit;text-align:left;color:inherit;cursor:pointer}.p-mrow-main .lb,.p-mrow-main .hr{font-size:13px;color:var(--fg-2)}.p-mrow-main .dl{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px;font-size:13px}.p-prop{flex-basis:100%;font-size:12px;font-weight:600;color:var(--accent-text)}.p-mw-side{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-mw-side>.p-card,.p-mw-side>.ex-notice{flex:none}.p-now-h{background:var(--ok-bg);border-color:var(--ok-bd)}.p-now-h h2,.p-now-h p{color:var(--t-ok)}.p-now-b{display:flex;flex-direction:column;gap:6px;padding:12px 18px 14px}.p-now-t{font-size:15px;font-weight:700;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.p-app button.p-now-t{appearance:none;background:none;border:none;padding:0;margin:0;font-family:inherit;text-align:left;cursor:pointer}.p-app button.p-now-t:hover{text-decoration:underline}.p-now-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.p-clock{font-size:32px;font-weight:800;line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}.p-now-m{font-size:13px;color:var(--fg-2)}.p-now-a{display:flex;gap:8px;margin-top:4px}.p-days{display:flex;gap:10px;align-items:flex-end;padding:12px 18px 2px}.p-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:13px}.p-day .v{font-weight:700}.p-day .d{color:var(--fg-2)}.p-day .bar{position:relative;width:100%;height:56px;display:flex;align-items:flex-end;border-radius:6px;background:var(--surface-subtle)}.p-day .bar i{display:block;width:100%;border-radius:6px;background:var(--ink)}.p-day .bar:after{content:"";position:absolute;left:0;right:0;bottom:50px;border-top:1px dashed var(--fg-3)}.p-day.short .bar i{background:var(--warn-dot)}.p-day.short .v{color:var(--t-warn)}.p-day.today .bar{background:var(--ok-bg);box-shadow:inset 0 0 0 1px var(--ok-bd)}.p-day.today .bar i{background:var(--ok-dot)}.p-day.leave .v{color:var(--fg-2);font-weight:500}.p-week-note{margin:6px 18px 0;font-size:13px;color:var(--fg-2)}.p-week-next{display:flex;align-items:center;gap:10px;margin:12px 18px 0;font-size:13px;font-weight:600}.p-week-next>span:first-child{color:var(--fg-2);font-weight:500;white-space:nowrap}.p-week-last{margin-bottom:14px}.p-app .p-sup{padding:10px 18px}.p-wait{font-size:13px;font-weight:600;color:var(--fg-2);white-space:nowrap}.p-sup-empty{padding:2px 18px 14px}.p-drawer-sub{margin:4px 0 0;font-size:14px;color:var(--fg-2)}.p-app .p-bulk{overflow-y:auto;gap:0;padding-top:4px}.p-bulk-i{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--line)}.p-bulk-i:first-child{border-top:none}.p-bulk-i b{font-size:14px;font-weight:600}.p-bulk-i>span{font-size:13px;color:var(--fg-2)}.p-app .p-dim{opacity:.55}.p-app .p-card.p-tl{flex:1;min-height:0}.p-tlbody{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.p-tlh{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:300px minmax(0,1fr);background:var(--surface);border-bottom:1px solid var(--line)}.p-tlh-l{display:flex;align-items:flex-end;padding:0 16px 8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2);border-right:1px solid var(--line)}.p-tlh-r{position:relative;height:52px;margin-right:12px}.p-tlm{position:absolute;left:0;right:0;top:0;height:28px}.p-tlm>span{position:absolute;top:0;bottom:0;padding:8px 0 0 8px;border-left:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);white-space:nowrap;overflow:hidden}.p-tlw{position:absolute;left:0;right:0;top:30px;height:18px}.p-tlw>span{position:absolute;top:0;padding-left:4px;font-size:11px;color:var(--fg-2);font-variant-numeric:tabular-nums}.p-tltoday{position:absolute;top:6px;transform:translate(-50%);padding:1px 8px;border-radius:999px;background:var(--signal);color:var(--ink);font-size:11px;font-weight:700;white-space:nowrap;z-index:1}.p-tlinner{position:relative}.p-tlgrid{position:absolute;inset:0 12px 0 300px;pointer-events:none}.p-tlgrid>i{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}.p-tlnow{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--signal);z-index:1}.p-tlr{position:relative;display:grid;grid-template-columns:300px minmax(0,1fr);border-bottom:1px solid var(--line)}.p-tlr.grp{height:32px;background:var(--surface-faint)}.p-tlr.sub{height:26px}.p-tll-l{display:flex;align-items:center;min-width:0;padding:0 12px 0 16px;border-right:1px solid var(--line);background:var(--surface)}.p-tlr.grp>.p-tll-l{background:var(--surface-faint)}.p-tlr.sub>.p-tll-l{padding-left:36px}.p-app button.p-tlg{appearance:none;display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:0;margin:0;border:none;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}.p-tlg>.n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-tls{margin-left:auto;padding-left:8px;font-size:12px;font-weight:600;white-space:nowrap}.p-app button.p-tlt{appearance:none;display:block;width:100%;min-width:0;padding:0;margin:0;border:none;background:none;font:inherit;font-size:13px;color:var(--ink);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.p-app button.p-tlt:hover{text-decoration:underline}.p-tlf-n{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;color:var(--ink)}.p-tlf-n>.n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-tlf-n>.p-fase{flex:none;display:inline-flex;align-items:center;height:18px;padding:0 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface-faint);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2)}.p-tl-lane{position:relative;margin-right:12px}.p-tlk{position:absolute;top:13px;height:6px;border-radius:3px;background:#dbe4ec}.p-tld{position:absolute;top:10px;width:12px;height:12px;margin-left:-6px;transform:rotate(45deg);border-radius:2px;background:var(--ink);box-shadow:0 0 0 2px var(--surface-faint)}.p-tld.past{background:var(--err-dot)}.p-tltag{position:absolute;top:50%;transform:translateY(-50%);font-size:12px;color:var(--fg-2);white-space:nowrap;pointer-events:none}.p-tlr.grp .p-tltag{font-weight:600;color:var(--ink)}.p-tltag.in{padding:1px 6px;border-radius:4px;background:var(--surface);box-shadow:0 0 0 1px var(--line);z-index:3}.p-tlover{position:absolute;top:6px;display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border:1px solid var(--warn-bd);border-radius:999px;background:var(--warn-bg);font-size:12px;font-weight:600;color:var(--t-warn);text-decoration:none;z-index:3}.p-tlover:hover{text-decoration:underline}.p-tlover.ro:hover{text-decoration:none}.p-tlb.ro{cursor:pointer}.p-tlfb{position:absolute;top:11px;height:4px;border-radius:2px;background:var(--fg-3)}.p-tlb{position:absolute;top:6px;height:14px;border-radius:4px;background:#267fe8;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2}.p-tlb.crit{background:#104281}.p-tlb.park{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--fg-3)}.p-tlb:hover{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink);z-index:5}.p-tlb.park:hover{box-shadow:inset 0 0 0 1.5px var(--fg-3),0 0 0 2px var(--surface),0 0 0 4px var(--ink)}.p-tlb.bad{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--err-dot)}.p-tlb.drag{cursor:grabbing;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink),var(--shadow-modal);z-index:6}.p-tlb.drag.bad{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--err-dot),var(--shadow-modal)}.p-tlb:hover>.p-tip,.p-tlb.drag>.p-tip{display:flex}.p-app .p-tlb>.p-tip{width:max-content;max-width:360px;white-space:normal}.p-app .p-tlb>.p-tip.below{top:calc(100% + 8px);bottom:auto}.p-app .p-tlb>.p-tip.end{left:auto;right:0;transform:none}.p-app .p-tlb>.p-tip.start{left:0;transform:none}.p-tllinks{position:absolute;inset:0 12px 0 300px;pointer-events:none;z-index:1}.p-tllinks>i{position:absolute;background:var(--fg-3)}.p-tllinks>i.bad{background:var(--err-dot);z-index:1}.p-tlf{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 4px;border-top:1px solid var(--line);font-size:13px;color:var(--fg-2)}.p-tlleg{display:flex;align-items:center;gap:14px;flex:none}.p-tlleg>span{display:inline-flex;align-items:center;gap:6px;font-size:12px}.p-tlleg i{display:inline-block;width:18px;height:8px;border-radius:2px}.p-tlleg i.t{background:#267fe8}.p-tlleg i.c{background:#104281}.p-tlleg i.p{box-shadow:inset 0 0 0 1.5px var(--fg-3)}.p-tlleg i.f{height:4px;background:var(--fg-3)}.p-tlleg i.d{width:9px;height:9px;transform:rotate(45deg);background:var(--ink)}.p-tlleg i.l{width:16px;height:2px;border-radius:0;background:var(--fg-3)}.p-tlleg i.n{width:2px;height:14px;border-radius:0;background:var(--signal)}.p-tlf2{flex:none;padding:0 16px 10px;font-size:12px;color:var(--fg-2)}.p-kp{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.p-app .p-card.p-kp-main{min-height:0}.p-kp-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;border-top:1px solid var(--line)}.p-kp-row{display:grid;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) 92px 196px;align-items:center;gap:12px;padding:9px 18px;border-bottom:1px solid var(--line)}.p-kp-row:hover{background:var(--row-hover)}.p-kp-row>.a,.p-kp-row>.b{min-width:0;display:flex;flex-direction:column;gap:2px}.p-kp-row>.a>b,.p-kp-row>.b>b{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-kp-row>.b>b.mono{font-family:var(--font-mono);font-size:13px;font-weight:500}.p-kp-row>.a>span,.p-kp-row>.b>span{font-size:12px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-kp-row>.b>span.t-warn{color:var(--t-warn)}.p-kp-ar{display:flex;color:var(--fg-3)}.p-kp-pill{display:flex}.p-kp-acts{display:flex;justify-content:flex-end;gap:6px}.p-kp-head{padding:14px 18px 6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2);border-bottom:1px solid var(--line);background:var(--surface-faint)}.p-kp-empty{padding:28px 18px}.p-segn{margin-left:6px;font-weight:700;color:var(--fg-2)}.p-opt1>.nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-opt1>.c{font-weight:700;color:var(--fg-2)}.p-kp-side{display:flex;flex-direction:column;gap:16px;min-height:0}.p-kp-side>.p-card{flex:none}.p-kp-side>.p-card.p-kp-log{flex:1;min-height:0}.p-kp-covs{display:flex;flex-direction:column;padding:2px 8px 10px}.p-app button.p-kp-cov{appearance:none;display:flex;flex-direction:column;gap:6px;width:100%;padding:9px 10px;margin:0;border:none;border-radius:var(--radius-lg);background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}.p-app button.p-kp-cov:hover{background:var(--row-hover)}.p-app button.p-kp-cov.on{background:var(--mist)}.p-kp-cov>.l{display:flex;justify-content:space-between;gap:10px;font-size:13px}.p-kp-cov>.l>b{font-weight:600;color:var(--ink)}.p-kp-cov>.l>span{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.p-kp-bar{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.p-kp-bar>i{display:block;height:100%;border-radius:0 3px 3px 0;background:var(--mark-blue)}.p-kp-cov>.n{font-size:12px;color:var(--fg-2)}.p-kp-cov>.n>b{color:var(--ink)}.p-kp-log-b{flex:1;min-height:0;overflow-y:auto;padding:0 18px 8px;scrollbar-width:thin}.p-kp-log-i{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--line)}.p-kp-log-i:first-child{border-top:none}.p-kp-log-i>b{font-size:14px;font-weight:600;color:var(--ink)}.p-kp-log-i>span{font-size:12px;color:var(--fg-2)}.p-kp-opt-t{min-width:0}.p-kp-opt-t>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-app button.p-kp-opt.off{opacity:.55;cursor:not-allowed}.p-kp-q{width:100%;margin-bottom:10px}.p-kp-est{display:flex;flex-direction:column;gap:8px;margin-top:14px}.p-tm{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.p-app .p-card.p-tm-main{min-height:0}.p-tm-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-tm-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(8,52px) 116px;gap:5px;align-items:center;width:100%;padding:4px 14px;margin:0;border:none;border-top:1px solid var(--line);background:var(--surface);font:inherit;text-align:left;color:inherit}.p-app button.p-tm-p{cursor:pointer}.p-app button.p-tm-p:hover{background:var(--row-hover)}.p-tm-hd{position:sticky;top:0;z-index:2;border-top:none;padding-top:8px;padding-bottom:8px;font-size:13px;font-weight:600;color:var(--fg-2)}.p-tm-hd>span{text-align:center;line-height:1.2}.p-tm-hd>span.p{text-align:left}.p-tm-hd small{display:block;font-size:12px;font-weight:500}.p-tm-hd .now{color:var(--ink)}.p-tm-row .p{display:flex;align-items:center;gap:10px;min-width:0}.p-tm-row .nm{min-width:0}.p-tm-row .nm b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-tm-row .nm small{display:block;font-size:12px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-tm-team{background:var(--surface-faint);padding-top:8px;padding-bottom:8px}.p-tm-team .nm b{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-2)}.p-tm-span{grid-column:span 8;display:flex;align-items:center}.p-tm-c{display:flex;flex-direction:column;align-items:center;justify-content:center;height:34px;border-radius:var(--radius-md);font-size:13px;font-weight:600;color:var(--fg-3);line-height:1.1;box-shadow:inset 0 0 0 1px var(--line)}.p-tm-c>small{font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 3px}.p-tm-c.less{box-shadow:none;color:var(--ink)}.p-tm-c.p80{background:#cde2fb}.p-tm-c.p60{background:#9ec5f4}.p-tm-c.p50,.p-tm-c.p40{background:#5598e7}.p-tm-c.p20{background:#256abf;color:#fff}.p-tm-c.p0{background:#104281;color:#fff}.p-tm-c.off{background:repeating-linear-gradient(135deg,var(--surface-faint) 0 6px,var(--line) 6px 7px);color:var(--fg-2)}.p-tm-next{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.p-tm-next>b{font-size:14px;color:var(--ink)}.p-tm-next>small{font-size:12px;font-weight:600}.p-tm-leg{flex:none;display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--fg-2)}.p-tm-sw{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.p-tm-sw>i{display:inline-block;width:16px;height:10px;border-radius:2px}.p-tm-sw>i.w{box-shadow:inset 0 0 0 1px var(--line)}.p-tm-sw>i.b0{background:#cde2fb}.p-tm-sw>i.b1{background:#9ec5f4}.p-tm-sw>i.b2{background:#5598e7}.p-tm-sw>i.b3{background:#256abf}.p-tm-sw>i.b4{background:#104281}.p-tm-leg-r{margin-left:auto;text-align:right}.p-tm-side{display:flex;flex-direction:column;gap:16px;min-height:0}.p-tm-side>.p-card{flex:none}.p-tm-side>.p-card.p-kp-log{flex:1;min-height:0}.p-tm-list{display:flex;flex-direction:column;padding:0 16px 8px}.p-tm-li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.p-tm-li:first-child{border-top:none}.p-app .p-tm-li>button.t{appearance:none;display:flex;flex-direction:column;gap:1px;min-width:0;padding:0;margin:0;border:none;background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}.p-tm-li>.t>b{font-size:14px;font-weight:600;color:var(--ink)}.p-tm-li>.t>span{font-size:13px;color:var(--ink)}.p-tm-li>.t>small{font-size:12px;color:var(--fg-2)}.p-app .p-tm-li>button.t:hover>b{text-decoration:underline}.p-tm-empty{padding:12px 0}.p-tm-per{display:flex;flex-direction:column;gap:6px}.p-tm-pi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-lg)}.p-tm-pi>span{display:flex;flex-direction:column;min-width:0}.p-tm-pi b{font-size:14px}.p-tm-pi small{font-size:12px;color:var(--fg-2)}.p-tm-f{display:flex;flex-direction:column;gap:6px;margin-top:12px}.p-tm-f:first-of-type{margin-top:0}.p-tm-f .ex-input{width:100%}.p-tm-sum{margin:14px 0 8px;font-size:13px;color:var(--ink)}.p-tm-eff{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.p-tm-eff-h,.p-tm-eff-r{display:grid;grid-template-columns:70px 90px 70px minmax(0,1fr);gap:8px;align-items:center;padding:7px 12px;font-size:13px}.p-tm-eff-h{background:var(--surface-faint);font-size:12px;font-weight:600;color:var(--fg-2)}.p-tm-eff-r{border-top:1px solid var(--line)}.p-tm-eff-r>span:first-child{display:flex;flex-direction:column;line-height:1.15}.p-tm-eff-r small{font-size:11px;color:var(--fg-2)}.p-tm-eff-l{font-weight:600}.p-tm-name{width:100%}.p-tm-mem{display:flex;flex-direction:column;gap:2px}.p-tm-mem .p-opt.s{grid-template-columns:16px 24px minmax(0,1fr) auto}.p-tm-mem .p-opt .c{font-size:12px;font-weight:500;color:var(--fg-2)}.p-pop-teams{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 16px 6px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--fg-2)}.p-pop-teams>span{margin-right:2px}.p-pop-g{padding:10px 10px 4px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-2)}.p-pop-r{left:auto;right:0}.p-cap-team{background:var(--surface-faint);padding-top:7px;padding-bottom:7px}.p-cap-team>span{text-align:center;font-size:13px;font-weight:700}.p-cap-team>span.p{text-align:left}.p-cap-team .nm b{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-2)}.p-cap-team>span.v{color:var(--fg-2);font-weight:600}.p-cap-inz{display:inline-block;padding:0 5px;border-radius:4px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-size:11px;font-weight:600;color:var(--ink)}.p-kdd{position:relative}.p-app .p-pop-k{width:320px}.p-app .p-kpop{top:calc(100% + 8px)}.p-kopt>.ex-dot{flex:none}.p-app .p-kopt>.c{font-size:12px;font-weight:500;color:var(--fg-2);white-space:nowrap}.p-busywrap{position:relative}.p-app button.p-busybtn{appearance:none;border:none;background:none;padding:4px 8px;margin:0;border-radius:var(--radius-md);font-family:inherit;cursor:pointer}.p-app button.p-busybtn:hover,.p-app button.p-busybtn[aria-expanded=true]{background:var(--row-hover)}.p-app .p-busypop{left:auto;right:0;width:380px}.p-busypop .p-pop-b{max-height:460px}.p-busyi{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--radius-lg)}.p-busyi .t{display:flex;flex-direction:column;min-width:0}.p-busyi .t>b{font-size:14px;font-weight:600;color:var(--ink)}.p-busyi .t>span{font-size:12px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-busy-w{font-size:12px;font-weight:600;color:var(--fg-2);white-space:nowrap}.p-umwrap{position:relative}.p-um{position:absolute;left:0;bottom:calc(100% + 8px);z-index:41;width:300px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);overflow:hidden}.p-um-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.p-um-h .t{display:flex;flex-direction:column;min-width:0}.p-um-h b{font-size:14px}.p-um-h small{font-size:12px;color:var(--fg-2)}.p-um-s{padding:6px;border-bottom:1px solid var(--line)}.p-um-s>p{margin:6px 10px 4px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-2)}.p-app .p-um-i{appearance:none;display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:center;width:100%;padding:8px 10px;margin:0;border:none;border-radius:var(--radius-lg);background:none;font:inherit;text-align:left;color:var(--ink);text-decoration:none;cursor:pointer}.p-app .p-um-i:hover{background:var(--row-hover)}.p-app .p-um-i.on{background:var(--mist)}.p-um-i .t{display:flex;flex-direction:column;min-width:0}.p-um-i b{font-size:14px;font-weight:600}.p-um-i small{font-size:12px;color:var(--fg-2)}.p-um-ic{display:flex;color:var(--ink)}.p-um-f{margin:0;padding:10px 16px;font-size:12px;color:var(--fg-2);background:var(--surface-faint)}.p-app.side-min .p-sidebar{width:var(--sidebar-collapsed);padding-left:10px;padding-right:10px}.p-app.side-min .ex-sidebar-logo{justify-content:center}.p-app.side-min .ex-by,.p-app.side-min .ex-nav-section>p,.p-app.side-min .ex-nav-item>span,.p-app.side-min .ex-user>span:not(.ex-avatar){display:none}.p-app.side-min .ex-wordmark{font-size:0}.p-app.side-min .ex-wordmark:before{content:"P";font-size:22px}.p-app.side-min .ex-nav-item{justify-content:center;padding-left:0;padding-right:0}.p-app.side-min .ex-user{justify-content:center;padding:0}.p-out{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:var(--ink-deep)}.p-out-c{width:420px;padding:36px;border-radius:var(--radius-xl);background:var(--surface);text-align:center;box-shadow:var(--shadow-modal)}.p-out-w{font-size:26px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}.p-out-by{margin-left:8px;font-size:12px;color:var(--fg-2)}.p-out-c h2{margin:22px 0 8px;font-size:22px}.p-out-c p{margin:0 0 22px;font-size:14px;color:var(--fg-2)}.p-out button,.p-um button{font-family:inherit}.p-owners{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.p-owner{padding-left:4px}.p-app button.p-owner-x{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin:0 -4px 0 2px;padding:0;border:none;border-radius:50%;background:none;color:var(--fg-2);cursor:pointer}.p-app button.p-owner-x:hover{background:var(--line);color:var(--ink)}.p-ownpick{margin-top:10px}.p-fnote{flex:none;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-faint);font-size:13px;color:var(--ink)}.p-fnote>.ex-link{margin-left:auto;font-size:13px}.p-lbl-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%}.p-cal{display:flex;flex-direction:column;gap:8px;padding:12px 16px 16px}.p-cal-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.p-cal-t{font-size:13px;font-weight:600;color:var(--fg-2)}.p-cal-nav{display:flex;align-items:center;gap:6px}.p-app button.p-cal-note{appearance:none;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;margin:0 6px 0 0;border:1px solid var(--warn-bd);border-radius:999px;background:var(--warn-bg);font:inherit;font-size:12px;font-weight:600;color:var(--t-warn);cursor:pointer}.p-cal-hd{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:0 2px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-2)}.p-cal-g{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(116px,auto);gap:6px}.p-cal-d{display:flex;flex-direction:column;gap:4px;min-width:0;padding:6px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.p-cal-d.past{background:var(--surface-faint)}.p-cal-d.today{box-shadow:inset 0 0 0 2px var(--signal)}.p-cal-d.leave,.p-cal-d.hol{background:repeating-linear-gradient(135deg,var(--surface-faint) 0 6px,var(--line) 6px 7px)}.p-cal-dh{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.p-cal-dh>b{font-size:13px;color:var(--ink)}.p-cal-dh>small{font-size:11px;font-weight:600;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-cal-d.today .p-cal-dh>small{color:var(--ink)}.p-app button.p-cal-i{appearance:none;display:flex;flex-direction:column;align-items:flex-start;width:100%;min-width:0;padding:4px 6px;margin:0;border:none;border-left:3px solid var(--mark-blue);border-radius:4px;background:var(--mist);font:inherit;text-align:left;color:var(--ink);cursor:pointer}.p-app button.p-cal-i:hover{background:var(--row-hover)}.p-cal-i>b{max-width:100%;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-cal-i>small{font-size:11px;color:var(--fg-2)}.p-app button.p-cal-i.crit{border-left-color:var(--ink)}.p-app button.p-cal-i.due{border-left-color:var(--err-dot)}.p-app button.p-cal-i.live{box-shadow:inset 0 0 0 1px var(--ok-bd)}.p-app button.p-cal-more{appearance:none;padding:2px 4px;margin:0;border:none;background:none;font:inherit;font-size:12px;font-weight:600;color:var(--fg-2);text-align:left;cursor:pointer}.p-cal-foot{margin:4px 0 0;font-size:12px;color:var(--fg-2)}.p-cal-foot .ex-link{font-size:12px}.p-exp-t{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.p-exp-r{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(8,minmax(0,1fr));gap:4px;padding:6px 10px;border-top:1px solid var(--line);font-size:12px;font-variant-numeric:tabular-nums}.p-exp-r:first-child{border-top:none}.p-exp-h{background:var(--surface-faint);font-weight:700;color:var(--fg-2)}.p-exp-r>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-exp-csv{max-height:180px;margin:0;padding:10px 12px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-faint);font-family:var(--font-mono);font-size:11px;line-height:1.5;white-space:pre;-webkit-user-select:text;user-select:text}.p-setform{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.p-setform .ex-input{width:auto}.p-setform input[type=text]{flex:1;min-width:160px}.p-kp-in{width:100%;margin-bottom:10px}.p-app .p-card.p-vis{overflow:visible}.p-supg{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px}.p-sup-l{display:flex;flex-direction:column;gap:16px;min-height:0}.p-sup-l>.p-card{flex:none}.p-ins-row{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.p-ins{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:600;color:var(--ink);background:var(--surface-faint)}.p-ins.warn{border-color:var(--warn-bd);background:var(--warn-bg)}.p-hgrid{padding:4px 12px 2px}.p-hmr{display:grid;align-items:center;gap:2px;width:100%;padding:1px 6px;margin:0;border:none;border-radius:8px;background:none;font:inherit;text-align:left;color:inherit}.p-hgrid.wk .p-hmr{grid-template-columns:150px repeat(12,minmax(0,1fr)) 44px 100px}.p-hgrid.mo .p-hmr{grid-template-columns:150px repeat(3,minmax(0,1fr)) 44px 100px}.p-app button.p-hmr{cursor:pointer}.p-app button.p-hmr:hover{background:var(--row-hover)}.p-app button.p-hmr.on{background:var(--mist)}.p-hhead{position:sticky;top:0;z-index:6;background:var(--surface);font-size:12px;font-weight:600;color:var(--fg-2);padding-top:2px;padding-bottom:3px}.p-hh{text-align:center;line-height:1.15;font-size:11px;letter-spacing:-.01em}.p-hh>small{display:block;font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-hh.bv>small{color:var(--t-warn)}.p-hn{display:flex;align-items:center;gap:8px;min-width:0}.p-hn>.t{min-width:0}.p-hn>.t>b{display:block;font-size:14px;font-weight:600;line-height:1.2}.p-hn>.t>small{display:block;font-size:11px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-hc{position:relative;height:25px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.p-hc.b0{background:#cde2fb;color:var(--ink)}.p-hc.b1{background:#9ec5f4;color:var(--ink)}.p-hc.b2{background:#5598e7;color:var(--ink)}.p-hc.b3{background:#256abf;color:#fff}.p-hc.b4{background:#104281;color:#fff}.p-hc:hover{outline:2px solid var(--ink);outline-offset:1px;z-index:7}.p-hc-t{text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.p-htot{text-align:right;font-size:14px;font-variant-numeric:tabular-nums}.p-hshare{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:13px;font-weight:600;padding-left:10px}.p-hsb{flex:1;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.p-hsb>i{display:block;height:100%;border-radius:0 3px 3px 0;background:var(--mark-blue)}.p-hteam{position:sticky;bottom:0;z-index:6;background:var(--surface);border-top:1px solid var(--line);border-radius:0;margin-top:3px;padding-top:4px;padding-bottom:4px;font-size:13px}.p-hleg{display:flex;align-items:center;gap:10px;padding:6px 18px 10px;font-size:12px;color:var(--fg-2)}.p-hlegi{display:inline-flex;align-items:center;gap:5px}.p-hsw{display:inline-block;width:16px;height:10px;border-radius:2px}.p-hsw.b0{background:#cde2fb}.p-hsw.b1{background:#9ec5f4}.p-hsw.b2{background:#5598e7}.p-hsw.b3{background:#256abf}.p-hsw.b4{background:#104281}.p-hc.bz,.p-hsw.bz{background:var(--surface-faint);box-shadow:inset 0 0 0 1px var(--line)}.p-app .p-hc>.p-tip.below{top:calc(100% + 8px);bottom:auto}.p-sup-l>.p-card.p-hm{flex:1;min-height:0}.p-hbar{flex:none;display:flex;align-items:center;gap:8px;padding:0 18px 8px}.p-hscroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-hempty{padding:28px 6px}.p-hrise{font-style:normal;font-weight:700;color:var(--t-warn)}.p-hrise:before{content:" · ";font-weight:400;color:var(--fg-2)}.p-app .p-av.sq{border-radius:6px}.p-ins-a{text-decoration:none}.p-ins-a:hover{text-decoration:underline}.p-hlegi{white-space:nowrap}.p-hn>.t>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-pop-m{width:400px}.p-pop-m .p-pop-b{max-height:300px}.p-opt.s{grid-template-columns:16px 24px minmax(0,1fr) 40px}.p-pop-q{padding:8px 10px 2px}.p-pop-q .ex-search{width:100%}.p-pop-empty{padding:14px 10px}.p-csearch{flex:none;padding:10px 18px 8px}.p-csearch .ex-search{width:100%}.p-tip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:20;flex-direction:column;gap:1px;padding:7px 10px;border-radius:8px;background:var(--ink);color:#fff;font-size:12px;font-weight:500;white-space:nowrap;box-shadow:var(--shadow-modal);pointer-events:none;text-align:left}.p-tip>b{font-size:13px;font-weight:700}.p-tip>span{color:#fffc}.p-hc:hover>.p-tip{display:flex}.p-sup-r{min-height:0}.p-conv{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-app button.p-crow{appearance:none;display:flex;align-items:center;gap:12px;width:100%;padding:11px 18px;margin:0;border:none;border-top:1px solid var(--line);background:var(--surface);font:inherit;text-align:left;color:inherit;cursor:pointer}.p-app button.p-crow:first-child{border-top:none}.p-app button.p-crow:hover{background:var(--row-hover)}.p-crow>.t{flex:1;min-width:0}.p-crow>.t>b{display:block;font-size:14px;font-weight:600;line-height:1.35}.p-crow>.t>span{display:block;font-size:13px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-cwait{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700}.p-app button.p-filterchip{appearance:none;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;margin:0;flex:none;border:1px solid var(--ink);border-radius:999px;background:var(--mist);font:inherit;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}.p-app button.p-kpi.on{border-color:var(--ink)}.p-app button.p-kpi.fixed{cursor:default}.p-app button.p-kpi.fixed:hover{background:var(--surface)}.p-steps{display:flex;flex-direction:column;gap:12px}.p-step{display:flex;align-items:flex-start;gap:10px}.p-step>i{flex:none;width:12px;height:12px;margin-top:3px;border-radius:50%;border:2px solid var(--fg-3);background:var(--surface)}.p-step.done>i{border-color:var(--ok-dot);background:var(--ok-dot)}.p-step.now>i{border-color:var(--warn-dot)}.p-step>span>b{display:block;font-size:14px;font-weight:600}.p-step>span>small{display:block;font-size:12px;color:var(--fg-2)}.p-kchips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.p-app button.p-kchip{appearance:none;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;margin:0;border:1px solid var(--line);border-radius:999px;background:var(--surface);font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.p-kchip>i{width:8px;height:8px;border-radius:50%;background:var(--fg-3)}.p-kchip.err>i{background:var(--err-dot)}.p-kchip.warn>i{background:var(--warn-dot)}.p-kchip.ok>i{background:var(--ok-dot)}.p-app button.p-kchip.on{border-color:var(--ink);background:var(--mist);font-weight:600}.p-kl{flex:1;min-height:0;display:grid;grid-template-columns:560px minmax(0,1fr);gap:16px}.p-klh{display:grid;grid-template-columns:minmax(0,1fr) 170px 84px 56px;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600;color:var(--fg-2)}.p-klh>span:last-child{text-align:center}.p-kl-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-app button.p-krow{appearance:none;display:grid;grid-template-columns:minmax(0,1fr) 170px 84px 56px;gap:12px;align-items:center;width:100%;padding:10px 18px;margin:0;border:none;border-top:1px solid var(--line);background:var(--surface);font:inherit;text-align:left;color:inherit;cursor:pointer}.p-app button.p-krow:first-child{border-top:none}.p-app button.p-krow:hover{background:var(--row-hover)}.p-app button.p-krow.on{background:var(--mist)}.p-kname{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.p-kname>b{font-size:15px;font-weight:700}.p-kprog{display:flex;flex-direction:column;gap:5px}.p-kprog>small,.p-kend>small{font-size:12px;color:var(--fg-2)}.p-kbar{position:relative;display:block;height:8px;border-radius:4px;background:var(--line)}.p-kbar>i{display:block;height:100%;border-radius:4px;background:var(--ink)}.p-kbar>em{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--err-dot)}.p-kbar.big{height:12px;border-radius:6px}.p-kbar.big>i{border-radius:6px}.p-kend{display:flex;flex-direction:column;font-size:14px}.p-klate{font-size:15px;font-weight:700;text-align:center}.p-kd-h{flex:none;padding:16px 22px 14px;border-bottom:1px solid var(--line)}.p-kd-t{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.p-kd-t h2{margin:2px 0 0;font-size:22px;font-weight:700}.p-kd-why{margin:8px 0 0;font-size:14px;line-height:1.45}.p-kd-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.p-kd-ext{border:1px solid var(--line)}.p-kd-shift{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:13px;font-weight:600;color:var(--fg-2)}.p-kd-b{flex:1;min-height:0;overflow-y:auto;padding:14px 22px 18px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin}.p-kpis4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.p-kq{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-lg)}.p-kq>span{font-size:12px;font-weight:600;color:var(--fg-2)}.p-kq>b{font-size:22px;font-weight:700;line-height:1.2}.p-kq>small{font-size:12px;color:var(--fg-2)}.p-kbig-l{display:flex;justify-content:space-between;margin-top:6px;font-size:12px;color:var(--fg-2)}.p-kd-note{margin:6px 0 0;font-size:13px;color:var(--fg-2)}.p-kd-hours{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:13px;font-weight:600}.p-kd-hours>span:first-child{width:40px;color:var(--fg-2)}.p-kd-hours>.p-load{flex:1}.p-kd-counts{display:flex;gap:18px;margin-top:12px;font-size:13px;color:var(--fg-2)}.p-kd-counts>span>b{margin-right:5px;font-size:15px;color:var(--ink)}.p-kfases{display:flex;flex-direction:column;gap:10px}.p-kfase{display:grid;grid-template-columns:minmax(0,1fr) 120px 46px;gap:12px;align-items:center}.p-kfase>.t{min-width:0}.p-kfase>.t>b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-kfase>.t>small{display:block;font-size:12px;color:var(--fg-2)}.p-kfase>b{text-align:right;font-size:13px}.p-kms{display:inline-flex;align-items:center;gap:6px}.p-kteam{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.p-kmem{display:flex;align-items:center;gap:10px;min-width:0}.p-kmem>.n{flex:1;min-width:0}.p-kmem>.n>b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-kmem>.n>small{display:block;font-size:12px;color:var(--fg-2)}.p-kmem>b{font-size:13px}.p-app .p-scrim{z-index:30}.p-app .p-drawer{z-index:31}.p-cap-note{display:flex;align-items:center;gap:12px}.p-cap-note p{flex:1}.p-cap-note .ex-btn-xs{flex:none}.p-cap{flex:1;min-height:0}.p-cap-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-cap-row{display:grid;grid-template-columns:minmax(0,1fr) 88px repeat(8,82px) 84px;gap:6px;align-items:center;padding:3px 12px;border-top:1px solid var(--line)}.p-cap-hd{position:sticky;top:0;z-index:2;border-top:none;background:var(--surface);padding-top:8px;padding-bottom:8px;font-size:13px;font-weight:600;color:var(--fg-2)}.p-cap-hd>span{text-align:center;line-height:1.2}.p-cap-hd>span.p{text-align:left}.p-cap-hd small{display:block;font-size:12px;font-weight:500}.p-cap-hd .now{color:var(--ink)}.p-cap-row .p{display:flex;align-items:center;gap:10px;min-width:0}.p-cap-row .nm{min-width:0}.p-cap-row .nm b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-cap-row .nm small{display:block;font-size:12px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-app button.p-heat{appearance:none;width:100%;height:32px;padding:0;margin:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.p-app button.p-heat:hover{box-shadow:0 0 0 2px var(--signal)}.p-app button.p-heat.sel{box-shadow:0 0 0 2px var(--ink)}.p-app button.p-noest{appearance:none;background:none;border:none;margin:0;padding:6px 0;font:inherit;font-size:14px;font-weight:700;color:var(--fg-3);cursor:default}.p-app button.p-noest.has{color:var(--t-warn);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.p-app button.p-noest.sel{text-decoration-style:solid}.p-cap-tot{position:sticky;bottom:0;z-index:2;background:var(--surface-faint);font-weight:700;padding-top:9px;padding-bottom:9px;box-shadow:0 -1px 0 var(--line)}.p-cap-tot>span{text-align:center}.p-cap-tot>span.p{text-align:left}.p-cap-legend{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:13px;color:var(--fg-2)}.p-cap-legend>span{white-space:nowrap}.p-cap-hint{margin-left:auto}.p-sw.h-off{border-color:var(--off-bd)}.p-app .p-capd{overflow-y:auto}.p-capl{display:flex;flex-direction:column;gap:10px}.p-capi{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.p-capi-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.p-capi-h .main{min-width:0}.p-capi-h .main b{display:block;font-size:14px;font-weight:600;line-height:1.35}.p-capi-h .main>span{display:block;font-size:13px;color:var(--fg-2)}.p-capi-hh{text-align:right;white-space:nowrap}.p-capi-hh b{display:block;font-size:16px}.p-capi-hh small{display:block;font-size:12px;color:var(--fg-2)}.p-capc{display:flex;flex-direction:column;gap:6px}.p-app .p-capc .p-cand{grid-template-columns:30px minmax(0,1fr) auto}.p-capc-n{display:block;font-size:13px}.p-capc-go{font-size:13px;font-weight:700;color:var(--accent-text)}.p-pop-s{width:300px}.p-app button.p-opt1{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;margin:0;border:none;border-radius:var(--radius-lg);background:none;font:inherit;font-size:14px;color:var(--ink);text-align:left;cursor:pointer}.p-app button.p-opt1:hover{background:var(--row-hover)}.p-app button.p-opt1.on{font-weight:600}.p-app .p-tog-s{height:28px;padding:0 10px;font-size:13px}.p-ops{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.p-ops-list .p-card-h{align-items:flex-start}.p-ops-list .p-card-h .p-tools{flex:none}.p-ops-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.p-orow{display:flex;align-items:center;gap:12px;padding:8px 18px;border-top:1px solid var(--line)}.p-orow:first-child{border-top:none}.p-orow:hover{background:var(--row-hover)}.p-ochk{flex:none;display:flex;align-items:center}.p-ochk input{margin:0;width:16px;height:16px;accent-color:var(--ink);cursor:pointer}.p-orow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.p-orow-main>.p-oact{flex-wrap:wrap}.p-orow-t{display:flex;flex-direction:column;gap:2px;appearance:none;background:none;border:none;margin:0;padding:2px 0;font:inherit;text-align:left;color:inherit;cursor:pointer}.p-orow-t:hover>b{text-decoration:underline}.p-orow-t>b{font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.p-orow-t>span{font-size:13px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-oown{flex:none;width:100px;display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}.p-oown>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-ometa{flex:none;width:136px;display:flex;flex-direction:column;gap:2px;font-size:13px}.p-oprop>b{display:block;font-size:13px;color:var(--accent-text)}.p-oprop>small{display:block;font-size:12px;color:var(--fg-2)}.p-ohrs{flex:none;width:108px;font-size:13px;color:var(--fg-2)}.p-omod{flex:none;width:104px;font-size:13px;color:var(--fg-2)}.p-oact{flex:none;display:flex;gap:6px}.p-ops-side{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto}.p-ops-side>*{flex:none}.p-rel{display:flex;flex-direction:column;gap:12px;padding:14px 18px 16px}.p-rel-top{display:flex;align-items:baseline;gap:10px}.p-rel-v{font-size:40px;font-weight:700;line-height:1}.p-rel-sub{font-size:14px;color:var(--fg-2)}.p-rel-delta{font-size:13px;font-weight:600;color:var(--t-ok)}.p-meter{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;font-size:14px}.p-meter>b{text-align:right}.p-meter>.p-load{grid-column:1/-1;width:100%}.p-round{padding:4px 18px 8px}.p-round .p-kv{padding:6px 0}.p-set-tabs{margin-top:0}.p-setwrap{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.p-set-body{flex:1;min-height:0;overflow-y:auto;padding:4px 22px 12px;scrollbar-width:thin}.p-set{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}.p-set-l>b{display:block;font-size:14px;font-weight:600}.p-set-l>span{display:block;margin-top:3px;font-size:13px;line-height:1.45;color:var(--fg-2)}.p-set-c{display:flex;align-items:center;min-height:36px}.p-set-block .p-set-c{display:block}.p-num{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--fg-2)}.p-num>.ex-input{width:96px;height:36px;padding:0 10px;font-size:15px;font-weight:600;color:var(--ink)}.p-app .p-sel{width:auto;min-width:220px;height:36px;padding:0 10px}.p-set-radios{display:flex;flex-direction:column;gap:2px;width:100%}.p-set-t{font-size:14px;font-weight:600}.p-setrows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.p-setr{display:flex;align-items:center;gap:12px;padding:8px 12px;border-top:1px solid var(--line);background:var(--surface)}.p-setr:first-child{border-top:none}.p-setr-dot{flex:none;width:10px;height:10px;border-radius:50%}.p-setr-n{flex:1;min-width:0}.p-setr-n>b{display:block;font-size:14px;font-weight:600}.p-setr-n>small{display:block;font-size:12px;color:var(--fg-2)}.p-setr .p-num>.ex-input{width:80px}.p-setr-x{flex:none}.p-set-add{margin-top:10px}.p-set-addlist{display:flex;flex-direction:column;gap:8px;margin:12px 0;padding:12px;border:1px dashed var(--fg-3);border-radius:var(--radius-lg)}.p-set-addlist>span{font-size:13px;font-weight:600;color:var(--fg-2)}.p-set-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 22px;border-top:1px solid var(--line);background:var(--surface-faint);font-size:14px}.p-set-btns{display:flex;gap:8px}.p-set-side{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto}.p-set-side>*{flex:none}.p-pv{display:flex;flex-direction:column;gap:6px;padding:12px 18px 14px}.p-pv-t{margin:0 0 4px;font-size:14px;font-weight:600}.p-pv-s{margin:6px 0 0;font-size:13px;color:var(--fg-2)}.p-audit{display:flex;flex-direction:column;padding:4px 18px 10px}.p-audit-i{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-top:1px solid var(--line)}.p-audit-i:first-child{border-top:none}.p-audit-i>b{font-size:13px;font-weight:600}.p-audit-i>span{font-size:12px;color:var(--fg-2)}.p-toast-undo{appearance:none;border:none;border-left:1px solid rgba(255,255,255,.28);background:none;margin-left:4px;padding:0 0 0 14px;font:inherit;font-weight:700;color:var(--signal);cursor:pointer}.p-fake{display:flex;align-items:center;background:var(--surface-subtle);color:var(--ink)}.p-fake.new{background:var(--mist);border-color:var(--signal);font-weight:600}.p-cl.done{color:var(--fg-2);text-decoration:line-through}.p-clro{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;color:var(--fg-2);cursor:default}.p-clro>i{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:14px;height:14px;color:var(--ok-fg)}.p-clro>i:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--fg-3)}.p-clro.done{text-decoration:line-through}.p-clro.done>i:before{display:none}.p-toast{position:absolute;left:50%;bottom:28px;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--radius-lg);background:var(--ink);color:var(--on-ink);font-size:14px;font-weight:600;box-shadow:var(--shadow-modal);z-index:60;width:max-content;max-width:880px}.p-prio{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;border:1px solid var(--line);background:var(--surface-subtle);color:var(--fg-2)}.p-prio.p1{background:var(--err-bg);color:var(--t-err);border-color:var(--err-bd)}.p-prio.p3{background:var(--warn-bg);color:var(--t-warn);border-color:var(--warn-bd)}.p-dep{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}.p-dep:first-of-type{border-top:none}.p-dep .t{display:flex;flex-direction:column;min-width:0}.p-dep b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-dep small{font-size:12px;color:var(--fg-2)}.p-dep-ic{display:flex;color:var(--fg-2)}.p-dep-x{width:26px;height:26px}.p-dep-h{margin:12px 0 0;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-2)}.p-notes{width:100%;min-height:74px;resize:vertical;font-family:inherit;font-size:13px;line-height:1.45;padding:8px 10px}.p-notes-ro{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap}.p-att{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}.p-att:first-of-type{border-top:none}.p-att .t{display:flex;flex-direction:column;min-width:0}.p-att b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-att small{font-size:12px;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-att-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:26px;border-radius:6px;background:var(--surface-subtle);border:1px solid var(--line);font-size:10px;font-weight:800;letter-spacing:.03em;color:var(--fg-2)}.p-att-ic.w{color:#185abd}.p-att-ic.x{color:#107c41}.p-att-ic.pdf{color:#b3261e}.p-att-ic.sp{color:#036c70}.p-att-ic.chat{color:#5b5fc7}.p-attform{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;gap:8px;align-items:center;margin-top:8px}.p-task.can-drag{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}.p-task.dragging{opacity:.35}.p-task-ghost{position:fixed;z-index:80;margin:0;pointer-events:none;opacity:.95;box-shadow:var(--shadow-modal);cursor:grabbing}.p-col.drop{outline:2px solid var(--signal);outline-offset:-2px;background:var(--mist)}html,body,#root{height:100%}body{margin:0}.p-app{position:relative;width:100%;height:100%;min-width:1024px}.p-loading{display:flex;align-items:center;justify-content:center;height:100%;min-height:240px;font-size:14px;color:var(--fg-2)}.p-task.pending{opacity:.75}.p-task .tt{overflow-wrap:anywhere}.p-loaderr{flex-direction:column;gap:12px}.p-loaderr p{margin:0}.p-toast.err{background:var(--err-dot, #b3261e)}.p-tlms{position:absolute;top:10px;width:12px;height:12px;margin-left:-6px}.p-tlms:before{content:"";position:absolute;inset:1.5px;transform:rotate(45deg);border-radius:2px;background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--ink)}.p-tlms.done:before{background:var(--ok-dot);box-shadow:none}.p-tlms.late:before{box-shadow:inset 0 0 0 1.5px var(--err-dot)}.p-tlms:hover>.p-tip{display:flex}.p-app .p-tlms>.p-tip{width:max-content;max-width:360px;white-space:normal}.p-app .p-tlms>.p-tip.below{top:calc(100% + 8px);bottom:auto}.p-app .p-tlms>.p-tip.end{left:auto;right:0;transform:none}.p-app .p-tlms>.p-tip.start{left:0;transform:none}.p-tlb.ms{width:14px;margin-left:-7px;background:none}.p-tlb.ms:before{content:"";position:absolute;inset:2px;transform:rotate(45deg);border-radius:2px;background:#267fe8}.p-tlb.ms.crit:before{background:#104281}.p-tlb.ms.park:before{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--fg-3)}.p-tlb.ms,.p-tlb.ms:hover,.p-tlb.ms.park:hover,.p-tlb.ms.bad,.p-tlb.ms.drag,.p-tlb.ms.drag.bad{box-shadow:none}.p-tlb.ms:hover:before,.p-tlb.ms.drag:before{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--ink)}.p-tlb.ms.bad:before{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--err-dot)}.p-tlb.pending{opacity:.75}.p-tlr.hl,.p-tlr.hl>.p-tll-l{background:var(--mist)}.p-tlleg i.m{width:9px;height:9px;transform:rotate(45deg);background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--ink)}.p-mw.p-mw-solo{grid-template-columns:minmax(0,1fr)}.p-mrow-main.p-nohr{grid-template-columns:minmax(0,1fr) 110px 190px}.p-mrow.pending,.p-orow.pending{opacity:.75}.p-tm-row.p-tm-8{grid-template-columns:minmax(0,1fr) repeat(8,52px)}.p-app button.p-ins-a{appearance:none;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.p-hgrid.mo4 .p-hmr{grid-template-columns:150px repeat(4,minmax(0,1fr)) 44px 100px}.p-content>.p-notice{flex:none}@media(max-width:1400px){.p-supg{grid-template-columns:minmax(0,1fr) 340px}}
