/* generated file, do not change */
body {
  overflow: hidden;
  background-color: #FEFEFE;
}
body * {
  box-sizing: border-box;
  font-family: opensans, verdana;
}
textarea {
  line-height: 140% !important;
  padding: 4px 6px;
}
input,
select {
  padding: 3px;
  border-radius: 2px;
  border: 1px solid #c7c7c7;
}
input[readonly],
textarea[readonly] {
  color: #777 !important;
  background-color: #f9f9f9 !important;
}
input[type=text][disabled],
input[type=password][disabled],
textarea[disabled] {
  background-color: #eee;
}
a {
  color: #3379B8 !important;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
.preview-msg {
  position: absolute;
  left: 0px;
  right: 0px;
  top: 30%;
  font-size: 16px;
  color: #aaa;
  text-align: center;
  text-shadow: 1px 1px 1px #fafafa;
}
#app-toolbar {
  background-color: transparent;
  padding: 0 10px;
  margin: 15px 10px 0 300px;
}
#app-toolbar.w2ui-toolbar .w2ui-scroll-wrapper .w2ui-tb-button {
  font-size: 15px;
  height: 34px;
  padding: 2px 10px;
}
#app-toolbar.w2ui-toolbar .w2ui-scroll-wrapper .w2ui-tb-button.over {
  background-color: #faf8fb;
}
#app-toolbar.w2ui-toolbar .w2ui-scroll-wrapper .w2ui-tb-button .w2ui-tb-icon {
  margin-top: 3px;
  margin-left: -3px;
}
#app-toolbar.w2ui-toolbar .w2ui-scroll-wrapper .w2ui-tb-button .w2ui-tb-icon > span {
  padding-top: 1px;
  font-size: 18px;
}
#app-toolbar.w2ui-toolbar .w2ui-scroll-wrapper .w2ui-tb-button.checked {
  border: 1px solid #d8cbdf;
  background-color: #f6f3f8;
}
#app-toolbar.w2ui-toolbar .w2ui-scroll-wrapper .w2ui-tb-break {
  z-index: 4;
  margin-top: 5px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-group :nth-child(1) {
  display: none;
}
.w2ui-menu .w2ui-menu-item .menu-icon span {
  margin-top: -2px;
  height: 18px;
}
#app-container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: none;
}
#app-container .app-logo {
  position: relative;
  top: -3px;
}
#app-container #app-header {
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 70px;
  background-color: #fff;
  border-bottom: 1px solid #dedede;
  box-shadow: 0px 0px 10px #d0d0d0;
}
#app-container #app-header #app-title {
  display: inline-block;
  padding: 20px 15px 0 20px;
  font-size: 20px;
  color: #606060;
  text-shadow: 0 1px 2px #fff;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
#app-container #app-header #app-title .app-logo {
  border-radius: 3px;
  height: 35px;
  width: 35px;
  position: absolute;
  left: 17px;
  top: 7px;
  font-size: 34px;
}
#app-container #app-header #app-title .app-caption {
  margin-top: 4px;
  margin-left: 45px;
}
#app-container #app-header #app-title .icon-chevron-right {
  font-size: 15px;
  position: relative;
  top: -1px;
  color: #8a8a8a;
}
#app-container #app-main {
  z-index: 1;
  position: absolute;
  top: 70px;
  left: 0;
  right: 0;
  bottom: 0;
  font-size: 11px;
  border-top: 1px solid #e0e1e3;
  background-color: #f5f6f8;
}
.w2ui-layout .w2ui-panel-content {
  background-color: #f5f6f8 !important;
}
/* Requests grid: multiline row cell */
.req-grid-cell {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 2px 4px 2px 0;
  line-height: 1.45;
}
.req-grid-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  color: #1e293b;
  letter-spacing: 0.01em;
}
.req-grid-meta {
  font-size: 13px;
  line-height: 1.8;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-left: 10px;
}
.req-grid-meta .req-grid-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.req-grid-meta .req-grid-status {
  width: 65px;
}
/* Sidebar */
.w2ui-sidebar .w2ui-sidebar-top {
  top: 7px;
}
.w2ui-sidebar .w2ui-sidebar-top .w2ui-flat-left,
.w2ui-sidebar .w2ui-sidebar-top .w2ui-flat-right {
  height: 28px;
}
.w2ui-sidebar input {
  display: none;
}
.w2ui-sidebar .w2ui-sidebar-body {
  overflow: auto;
  background-color: #fff;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-group :nth-child(1) {
  display: none;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).w2ui-level-0 {
  margin: 8px 5px 0 8px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).w2ui-level-0 .w2ui-node-data {
  margin-left: 9px !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).w2ui-node.w2ui-level-1 {
  margin: 0 6px 0 8px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).w2ui-node.w2ui-level-1 .w2ui-node-data {
  margin-left: 9px !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat):hover {
  background-color: #f1f0f2;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).w2ui-selected:not(.sidebar-button, .sidebar-group),
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).w2ui-selected:not(.sidebar-button, .sidebar-group):hover {
  background-color: #eee8f2 !important;
  border: 1px solid #eee8f2 !important;
  background: linear-gradient(to right, #a10a8d 0 3px, transparent 3px);
  border-radius: 3px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat) .w2ui-node-data {
  padding: 5px 3px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat) .w2ui-node-text {
  font-size: 14px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).sidebar-group {
  border: 0px;
  border-top: 1px solid #e3e3e3;
  margin-top: 10px;
  padding-top: 10px;
  margin: 10px 8px 4px 4px;
  background-color: transparent !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).sidebar-group .w2ui-node-image {
  display: none;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).sidebar-group .w2ui-sb-toggle {
  width: 22px;
  padding-left: 8px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node:not(.w2ui-node-flat).sidebar-group .w2ui-node-text {
  margin-left: 0px !important;
  color: #8e8e8e;
  font-size: 14px;
  text-transform: uppercase;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-group {
  border-top: 1px solid #e3e3e3;
  margin-top: 10px;
  padding-top: 14px;
  margin: 12px 8px 0 0px;
  color: #8e8e8e;
  font-size: 13px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-group :nth-child(1) {
  display: none;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-group:after {
  content: '▾';
  display: inline;
  float: right;
  width: 10px;
  color: #8e8e8e;
  font-size: 14px;
  margin-top: -2px;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-group:first-child {
  border-top: none;
  margin-top: 0;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node-flat:not(.sidebar-button) {
  padding: 6px 0;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button {
  background-color: #25a2eb !important;
  color: white;
  border-radius: 26px;
  margin: 5px 5px !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button:hover {
  background-color: #2a92cf !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button .w2ui-node-data {
  display: flex;
  justify-content: center;
  margin-left: 0px !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button .w2ui-node-data .w2ui-node-text {
  margin-left: 0px;
  color: white;
  text-shadow: none;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button .w2ui-node-data .w2ui-node-image span {
  color: white;
  text-shadow: 0px 0px 2px #232323;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button .w2ui-selected,
.w2ui-sidebar .w2ui-sidebar-body .w2ui-node.sidebar-button .w2ui-selected:hover {
  background-color: #25a2eb !important;
  border: 1px solid blue !important;
}
.w2ui-sidebar .w2ui-sidebar-body .w2ui-selected,
.w2ui-sidebar .w2ui-sidebar-body .w2ui-selected:hover {
  background-color: #efe5f6;
  border: 1px solid #b390cd;
}
.w2ui-grid {
  background-color: #f5f6f8 !important;
}
.w2ui-grid .w2ui-grid-toolbar {
  padding-top: 5px;
  height: 50px;
  background-color: #f5f6f8 !important;
}
.w2ui-grid .w2ui-grid-toolbar .w2ui-scroll-wrapper .w2ui-tb-button {
  height: 32px !important;
  margin-left: 0px;
  padding: 3px 6px;
}
.w2ui-grid .w2ui-grid-toolbar .w2ui-grid-search-input .w2ui-search-all {
  background-color: #fdfcfd !important;
  border-color: #fdfcfd !important;
  box-shadow: 0 0 1px 1px #ced0d3 !important;
}
.w2ui-grid .w2ui-grid-toolbar .w2ui-grid-search-input .w2ui-search-all:focus {
  border-color: transparent !important;
  box-shadow: 0 0 0 2px rgba(114, 178, 255) !important;
  outline: none !important;
}
.w2ui-grid .w2ui-grid-box {
  margin: 12px;
}
.w2ui-grid .w2ui-grid-body {
  border: 1px solid #d6d3d6;
  border-radius: 4px;
}
.w2ui-grid .w2ui-grid-body table td {
  font-size: 13px;
}
/* -------- Read Me (markdown) -------- */
.readme-host {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background-color: #f5f6f8;
}
.readme-host .readme-toolbar {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 10px 14px 8px 18px;
  background: #fff;
  border-bottom: 1px solid #e9ebf0;
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.03);
}
.readme-host .readme-toolbar .readme-back {
  font: 600 13px/1 opensans, verdana;
  color: #6c3bd1;
  background: #f3f0fa;
  border: 1px solid #e0d6ef;
  border-radius: 8px;
  padding: 6px 12px;
  cursor: pointer;
}
.readme-host .readme-toolbar .readme-back:hover {
  background: #ebe4f5;
}
.readme-host .readme-content {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}
.readme-host .readme-loading {
  padding: 40px;
  text-align: center;
  color: #8e8e8e;
  font-size: 14px;
}
.readme-host .readme-body {
  max-width: 900px;
  margin: 20px auto;
  padding: 28px 36px;
  background: #ffffff;
  border: 1px solid #e9ebf0;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  color: #1f2440;
  font-size: 14px;
  line-height: 1.65;
}
.readme-host .readme-body h1,
.readme-host .readme-body h2,
.readme-host .readme-body h3,
.readme-host .readme-body h4,
.readme-host .readme-body h5,
.readme-host .readme-body h6 {
  color: #1f2440;
  margin: 1.4em 0 0.6em;
  font-weight: 700;
  line-height: 1.25;
}
.readme-host .readme-body h1 {
  font-size: 26px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e9ebf0;
  margin-top: 0;
}
.readme-host .readme-body h2 {
  font-size: 20px;
  padding-bottom: 6px;
  border-bottom: 1px solid #eef0f4;
}
.readme-host .readme-body h3 {
  font-size: 17px;
}
.readme-host .readme-body h4 {
  font-size: 15px;
}
.readme-host .readme-body p {
  margin: 0.6em 0;
}
.readme-host .readme-body a {
  color: #6c3bd1 !important;
  text-decoration: none;
}
.readme-host .readme-body a:hover {
  text-decoration: underline;
}
.readme-host .readme-body ul,
.readme-host .readme-body ol {
  padding-left: 24px;
  margin: 0.6em 0;
}
.readme-host .readme-body li {
  margin: 2px 0;
}
.readme-host .readme-body code {
  font-family: Menlo, Consolas, monospace;
  font-size: 12.5px;
  background: #f3f1f7;
  color: #5a2ca0;
  padding: 1px 5px;
  border-radius: 4px;
}
.readme-host .readme-body pre {
  background: #1f2440;
  color: #e6e8ef;
  padding: 14px 16px;
  border-radius: 8px;
  overflow-x: auto;
  font-size: 12.5px;
  line-height: 1.5;
}
.readme-host .readme-body pre code {
  background: transparent;
  color: inherit;
  padding: 0;
}
.readme-host .readme-body blockquote {
  margin: 0.8em 0;
  padding: 2px 14px;
  color: #6b7280;
  border-left: 3px solid #d6cce4;
  background: #faf9fc;
  border-radius: 0 6px 6px 0;
}
.readme-host .readme-body table {
  border-collapse: collapse;
  margin: 0.8em 0;
  font-size: 13px;
}
.readme-host .readme-body table th,
.readme-host .readme-body table td {
  border: 1px solid #e9ebf0;
  padding: 6px 10px;
}
.readme-host .readme-body table th {
  background: #f5f3f8;
}
.readme-host .readme-body img {
  max-width: 100%;
}
.readme-host .readme-body hr {
  border: 0;
  border-top: 1px solid #e9ebf0;
  margin: 1.4em 0;
}
/* -------- Dashboard (main module) -------- */
.dashboard-host {
  background-color: #f5f6f8;
}
.dashboard-root {
  padding: 18px 22px 28px;
  min-width: 720px;
}
.dashboard-root .dashboard-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 0 8px;
}
.dashboard-root .dashboard-header .dashboard-title {
  font-size: 22px;
  font-weight: 700;
  color: #1f2440;
  letter-spacing: -0.2px;
}
.dashboard-root .dashboard-header .dashboard-subtitle {
  font-size: 12px;
  color: #6b7280;
  margin-top: 2px;
}
.dashboard-root .dashboard-chips {
  display: flex;
  gap: 8px;
}
.dashboard-root .dashboard-chips .chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  font-size: 12px;
  color: #6b7280;
  background: #fff;
  border: 1px solid #e9ebf0;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.dashboard-root .dashboard-chips .chip-live {
  color: #108043;
  background: #e9faf0;
  border-color: #c9ecd5;
}
.dashboard-root .dashboard-chips .chip-live .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #16b364;
  box-shadow: 0 0 0 4px rgba(22, 179, 100, 0.18);
  animation: dash-pulse 1.6s ease-in-out infinite;
}
.dashboard-root .kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
@media (max-width: 1100px) {
  .dashboard-root .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.dashboard-root .kpi-card {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 12px;
  padding: 16px 18px;
  background: #ffffff;
  border: 1px solid #e9ebf0;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.dashboard-root .kpi-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(16, 24, 40, 0.08);
}
.dashboard-root .kpi-card .kpi-icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 22px;
  background: linear-gradient(135deg, #6c3bd1, #a10a8d);
  box-shadow: 0 6px 14px rgba(108, 59, 209, 0.25);
}
.dashboard-root .kpi-card .kpi-icon span {
  font-size: 22px;
  line-height: 1;
}
.dashboard-root .kpi-card .kpi-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.dashboard-root .kpi-card .kpi-body .kpi-label {
  font-size: 12px;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dashboard-root .kpi-card .kpi-body .kpi-value {
  font-size: 22px;
  font-weight: 700;
  color: #1f2440;
  margin-top: 2px;
  letter-spacing: -0.3px;
}
.dashboard-root .kpi-card .kpi-body .kpi-delta {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  margin-top: 3px;
}
.dashboard-root .kpi-card .kpi-body .kpi-delta .arrow {
  font-size: 10px;
}
.dashboard-root .kpi-card .kpi-body .kpi-delta .kpi-delta-sub {
  color: #6b7280;
  font-weight: 400;
  margin-left: 4px;
}
.dashboard-root .kpi-card .kpi-body .kpi-delta.up {
  color: #16b364;
}
.dashboard-root .kpi-card .kpi-body .kpi-delta.down {
  color: #ef4444;
}
.dashboard-root .kpi-card .kpi-spark {
  position: absolute;
  right: 10px;
  bottom: 8px;
  width: 90px;
  height: 28px;
  opacity: 0.85;
  pointer-events: none;
  color: #6c3bd1;
}
.dashboard-root .kpi-card.kpi-accent .kpi-icon {
  background: linear-gradient(135deg, #25a2eb, #3ec5ff);
  box-shadow: 0 6px 14px rgba(37, 162, 235, 0.25);
}
.dashboard-root .kpi-card.kpi-accent .kpi-spark {
  color: #25a2eb;
}
.dashboard-root .kpi-card.kpi-warning .kpi-icon {
  background: linear-gradient(135deg, #f7a32b, #ffcf6a);
  box-shadow: 0 6px 14px rgba(247, 163, 43, 0.25);
}
.dashboard-root .kpi-card.kpi-warning .kpi-spark {
  color: #f7a32b;
}
.dashboard-root .kpi-card.kpi-success .kpi-icon {
  background: linear-gradient(135deg, #16b364, #6fe0a7);
  box-shadow: 0 6px 14px rgba(22, 179, 100, 0.25);
}
.dashboard-root .kpi-card.kpi-success .kpi-spark {
  color: #16b364;
}
.dashboard-root .charts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 1200px) {
  .dashboard-root .charts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .dashboard-root .charts-grid {
    grid-template-columns: 1fr;
  }
}
.dashboard-root .card {
  background: #ffffff;
  border: 1px solid #e9ebf0;
  border-radius: 14px;
  padding: 16px 18px 8px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  transition: box-shadow 0.2s ease;
  min-width: 0;
}
.dashboard-root .card:hover {
  box-shadow: 0 8px 20px rgba(16, 24, 40, 0.06);
}
.dashboard-root .card.card-wide {
  grid-column: span 2;
}
@media (max-width: 800px) {
  .dashboard-root .card.card-wide {
    grid-column: span 1;
  }
}
.dashboard-root .card .card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 6px;
}
.dashboard-root .card .card-head .card-title {
  font-size: 15px;
  font-weight: 700;
  color: #1f2440;
}
.dashboard-root .card .card-head .card-sub {
  font-size: 12px;
  color: #6b7280;
  margin-top: 1px;
}
.dashboard-root .card .card-head .card-link {
  font-size: 12px;
  color: #6c3bd1 !important;
  font-weight: 600;
}
.dashboard-root .card .card-head .card-pill {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 999px;
  color: #fff;
  background: #6c3bd1;
}
.dashboard-root .card .card-head .card-pill.pill-primary {
  background: linear-gradient(135deg, #6c3bd1, #a10a8d);
}
.dashboard-root .card .card-head .card-pill.pill-accent {
  background: linear-gradient(135deg, #25a2eb, #3ec5ff);
}
.dashboard-root .card .card-head .card-pill.pill-success {
  background: linear-gradient(135deg, #16b364, #6fe0a7);
}
.dashboard-root .card-activity .activity-list {
  display: flex;
  flex-direction: column;
  padding: 4px 0 10px;
}
.dashboard-root .card-activity .activity-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 4px;
  border-bottom: 1px dashed #e9ebf0;
}
.dashboard-root .card-activity .activity-row:last-child {
  border-bottom: 0;
}
.dashboard-root .card-activity .activity-row .activity-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
  background: #6c3bd1;
}
.dashboard-root .card-activity .activity-row .activity-icon span {
  font-size: 16px;
}
.dashboard-root .card-activity .activity-row .activity-icon.activity-success {
  background: linear-gradient(135deg, #16b364, #6fe0a7);
}
.dashboard-root .card-activity .activity-row .activity-icon.activity-accent {
  background: linear-gradient(135deg, #25a2eb, #3ec5ff);
}
.dashboard-root .card-activity .activity-row .activity-icon.activity-warning {
  background: linear-gradient(135deg, #f7a32b, #ffcf6a);
}
.dashboard-root .card-activity .activity-row .activity-icon.activity-primary {
  background: linear-gradient(135deg, #6c3bd1, #a10a8d);
}
.dashboard-root .card-activity .activity-row .activity-icon.activity-info {
  background: linear-gradient(135deg, #06b6d4, #6fdcf0);
}
.dashboard-root .card-activity .activity-row .activity-text {
  flex: 1 1 auto;
  min-width: 0;
}
.dashboard-root .card-activity .activity-row .activity-text .activity-title {
  font-size: 13px;
  font-weight: 600;
  color: #1f2440;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dashboard-root .card-activity .activity-row .activity-text .activity-time {
  font-size: 11px;
  color: #6b7280;
  margin-top: 2px;
}
@keyframes dash-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(22, 179, 100, 0.45);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(22, 179, 100, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(22, 179, 100, 0);
  }
}
/* -------- Projects → Summary (compact portfolio) -------- */
.projects-summary-host {
  width: 100%;
  box-sizing: border-box;
  background: linear-gradient(180deg, #f4faf9 0%, #f1f5f9 40%, #eef2f6 100%);
  min-width: 0;
}
.projects-summary {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  padding: 14px 18px 20px;
}
.ps-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(13, 148, 136, 0.09) 0%, rgba(91, 79, 191, 0.07) 100%);
  border: 1px solid rgba(13, 148, 136, 0.18);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}
.ps-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.3px;
}
.ps-sub {
  margin: 4px 0 0;
  font-size: 11px;
  color: #64748b;
  font-weight: 500;
}
.ps-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  justify-content: flex-end;
}
.ps-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  font-size: 10px;
  font-weight: 600;
  color: #64748b;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ps-badge-live {
  color: #0f766e;
  background: #ecfdf5;
  border-color: #a7f3d0;
}
.ps-pulse {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0d9488;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.12);
  animation: ps-pulse 1.8s ease-in-out infinite;
}
@keyframes ps-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(13, 148, 136, 0.45);
  }
  70% {
    box-shadow: 0 0 0 6px rgba(13, 148, 136, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(13, 148, 136, 0);
  }
}
/* KPI strip */
.ps-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
@media (max-width: 720px) {
  .ps-kpis {
    grid-template-columns: 1fr;
  }
}
.ps-kpi {
  display: flex;
  align-items: stretch;
  gap: 10px;
  padding: 12px 12px 12px 14px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  min-width: 0;
}
.ps-kpi:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.07);
}
.ps-kpi-icon {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(145deg, #0d9488, #0f766e);
  box-shadow: 0 4px 10px rgba(13, 148, 136, 0.12);
  font-size: 16px;
}
.ps-kpi:nth-child(2) .ps-kpi-icon {
  background: linear-gradient(145deg, #5b4fbf, #4c1d95);
  box-shadow: 0 4px 10px rgba(91, 79, 191, 0.22);
}
.ps-kpi:nth-child(3) .ps-kpi-icon {
  background: linear-gradient(145deg, #f59e0b, #ea580c);
  box-shadow: 0 4px 10px rgba(245, 158, 11, 0.2);
}
.ps-kpi-body {
  min-width: 0;
  flex: 1;
}
.ps-kpi-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #64748b;
}
.ps-kpi-value {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.4px;
  line-height: 1.15;
  margin-top: 1px;
}
.ps-kpi-meta {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-top: 3px;
}
.ps-kpi-delta {
  font-size: 11px;
  font-weight: 600;
  color: #0d9488;
}
.ps-kpi-delta.down {
  color: #dc2626;
}
.ps-kpi-sub {
  font-size: 10px;
  color: #64748b;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Chart grid */
.ps-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.9fr;
  gap: 10px;
  margin-bottom: 12px;
  align-items: stretch;
}
@media (max-width: 900px) {
  .ps-grid {
    grid-template-columns: 1fr;
  }
}
.ps-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px 12px 4px;
  min-width: 0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ps-card-h {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 2px;
  padding: 0 2px 0 0;
}
.ps-card-t {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
}
.ps-card-s {
  margin: 2px 0 0;
  font-size: 10px;
  color: #64748b;
  font-weight: 500;
  line-height: 1.3;
}
.ps-pill {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(125deg, #0d9488, #5b4fbf);
  box-shadow: 0 2px 6px rgba(13, 148, 136, 0.12);
}
.ps-chart {
  min-height: 0;
}
/* Upcoming */
.ps-upcoming {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 10px 12px 4px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ps-up-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  padding: 0 0 0 2px;
}
.ps-up-h .ps-card-t {
  font-size: 13px;
}
.ps-link {
  font-size: 11px;
  font-weight: 600;
  color: #0d9488 !important;
  text-decoration: none !important;
}
.ps-link:hover {
  text-decoration: underline !important;
}
.ps-ms-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 0 4px;
}
.ps-ms-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 4px 8px 2px;
  border-top: 1px dashed #e2e8f0;
  font-size: 12px;
}
.ps-ms-row:first-of-type {
  border-top: 0;
}
.ps-ms-dot {
  flex: 0 0 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0d9488;
}
.ps-ms-urgent .ps-ms-dot {
  background: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
}
.ps-ms-soon .ps-ms-dot {
  background: #f59e0b;
}
.ps-ms-text {
  flex: 1 1 auto;
  font-weight: 600;
  color: #0f172a;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ps-ms-when {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}
