.dashboard-layout{--color-primary:#1e40af;--color-primary-soft:#dbeafe;--color-bg:#f6f8fc;--color-surface:#fff;--color-surface-muted:#f8fafc;--color-text:#0f172a;--color-muted:#64748b;--color-border:#e2e8f0;--color-cyan:#0e7490;--color-green:#15803d;--color-amber:#b45309;--color-red:#dc2626;--shadow-card:0 10px 28px rgba(15,23,42,0.08);min-height:calc(100vh - 120px);background:linear-gradient(180deg,rgba(219,234,254,.8),rgba(248,250,252,0) 360px),var(--color-bg)}.dashboard-page{padding:24px}.dashboard-page__content{width:100%;max-width:1480px;margin:0 auto}.dashboard-hero{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:24px;margin-bottom:24px;padding:24px;border:1px solid rgba(30,64,175,.12);border-radius:8px;background:linear-gradient(135deg,hsla(0,0%,100%,.94),rgba(239,246,255,.92)),var(--color-surface);-webkit-box-shadow:var(--shadow-card);box-shadow:var(--shadow-card)}.dashboard-hero__copy{min-width:0}.dashboard-hero__eyebrow{margin-bottom:12px;padding:4px 10px;color:var(--color-primary);font-weight:600}.dashboard-hero__title{margin:0;color:var(--color-text);font-size:clamp(28px,3vw,40px);line-height:1.15;font-weight:800}.dashboard-hero__subtitle{max-width:680px;margin:10px 0 0;color:#475569;font-size:16px}.dashboard-hero__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;gap:12px}.dashboard-hero__range /deep/ .ant-radio-button-wrapper{min-height:36px;line-height:34px}.dashboard-hero__btn{min-height:36px}.section-heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading h2{margin:0;color:var(--color-text);font-size:22px;line-height:1.25;font-weight:800}.section-heading p{margin:6px 0 0;color:var(--color-muted);font-size:14px}.composition-section,.summary-strip{margin-bottom:24px}.composition-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}/deep/ .composition-chart-card.ant-card{border:1px solid var(--color-border);border-radius:8px;-webkit-box-shadow:0 6px 18px rgba(15,23,42,.06);box-shadow:0 6px 18px rgba(15,23,42,.06)}/deep/ .composition-chart-card .ant-card-head{min-height:58px;border-bottom:1px solid var(--color-border)}/deep/ .composition-chart-card .ant-card-head-title{padding:16px 0}/deep/ .composition-chart-card .ant-card-body{padding:18px}.composition-chart-card__title{color:var(--color-text);font-size:18px;font-weight:800}.composition-chart-card__description{margin:0 0 16px;color:var(--color-muted)}.composition-chart-card__body{display:grid;grid-template-columns:minmax(210px,240px) 1fr;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:18px}.composition-pie{position:relative;width:100%;max-width:240px;aspect-ratio:1;margin:0 auto}.composition-pie__svg{width:100%;height:100%;-webkit-filter:drop-shadow(0 10px 20px rgba(15,23,42,.08));filter:drop-shadow(0 10px 20px rgba(15,23,42,.08))}.composition-pie__slice{cursor:pointer;-webkit-transition:opacity .18s ease,stroke-width .18s ease,-webkit-filter .18s ease;transition:opacity .18s ease,stroke-width .18s ease,-webkit-filter .18s ease;transition:opacity .18s ease,stroke-width .18s ease,filter .18s ease;transition:opacity .18s ease,stroke-width .18s ease,filter .18s ease,-webkit-filter .18s ease}.composition-pie__slice:focus{outline:3px solid var(--color-primary);outline-offset:4px}.composition-pie__slice--active{stroke-width:40;-webkit-filter:drop-shadow(0 4px 10px rgba(15,23,42,.22));filter:drop-shadow(0 4px 10px rgba(15,23,42,.22))}.composition-pie__slice--muted{opacity:.34}.composition-pie__center{position:absolute;inset:50% auto auto 50%;width:130px;min-height:78px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:12px;border-radius:999px;background:hsla(0,0%,100%,.94);-webkit-box-shadow:0 10px 28px rgba(15,23,42,.1);box-shadow:0 10px 28px rgba(15,23,42,.1);text-align:center;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.composition-pie__center span{color:var(--color-muted);font-size:13px;font-weight:700}.composition-pie__center strong{margin-top:4px;color:var(--color-text);font-size:16px;line-height:1.15;font-weight:900;font-variant-numeric:tabular-nums}.composition-pie__center small{margin-top:3px;color:var(--color-muted);font-size:12px;font-weight:700}.composition-breakdown-list{display:grid;gap:10px}.composition-breakdown-item{width:100%;min-height:72px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-muted);color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-transition:background .18s ease,border-color .18s ease,-webkit-box-shadow .18s ease;transition:background .18s ease,border-color .18s ease,-webkit-box-shadow .18s ease;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,-webkit-box-shadow .18s ease}.composition-breakdown-item--active,.composition-breakdown-item:focus,.composition-breakdown-item:hover{border-color:rgba(30,64,175,.32);background:#fff;-webkit-box-shadow:0 8px 20px rgba(15,23,42,.08);box-shadow:0 8px 20px rgba(15,23,42,.08);outline:none}.composition-breakdown-item__main{min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px}.composition-breakdown-item__main strong{color:var(--color-text);font-weight:800}.composition-breakdown-item__main p{margin:4px 0 0;color:var(--color-muted);font-size:13px}.composition-breakdown-item__dot{width:12px;height:12px;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;border-radius:999px;-webkit-box-shadow:0 0 0 5px rgba(148,163,184,.14);box-shadow:0 0 0 5px rgba(148,163,184,.14)}.composition-breakdown-item__value{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;text-align:right;font-variant-numeric:tabular-nums}.composition-breakdown-item__value strong{color:var(--color-text);font-weight:800}.composition-breakdown-item__value span{display:block;margin-top:4px;color:var(--color-muted);font-size:13px;font-weight:700}/deep/ .kpi-card.ant-card{height:100%;min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:8px;-webkit-box-shadow:0 6px 18px rgba(15,23,42,.06);box-shadow:0 6px 18px rgba(15,23,42,.06);-webkit-transition:border-color .18s ease,-webkit-transform .18s ease,-webkit-box-shadow .18s ease;transition:border-color .18s ease,-webkit-transform .18s ease,-webkit-box-shadow .18s ease;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,-webkit-transform .18s ease,-webkit-box-shadow .18s ease}/deep/ .kpi-card.ant-card:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px);border-color:rgba(30,64,175,.28);-webkit-box-shadow:var(--shadow-card);box-shadow:var(--shadow-card)}/deep/ .kpi-card.ant-card .ant-card-body{padding:18px}.kpi-card__topline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:12px}.kpi-card__label{color:#334155;font-size:14px;font-weight:700}.kpi-card__stat{color:var(--color-text);font-size:clamp(24px,1.8vw,30px);line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums}.kpi-card__prefix,.kpi-card__suffix{font-size:.85em}.kpi-card__description{margin:10px 0 0;color:var(--color-muted);font-size:13px}.kpi-card--blue{border-top:4px solid var(--color-primary)}.kpi-card--cyan{border-top:4px solid var(--color-cyan)}.kpi-card--green{border-top:4px solid var(--color-green)}.kpi-card--amber{border-top:4px solid var(--color-amber)}.kpi-card--red{border-top:4px solid var(--color-red)}.kpi-card--slate{border-top:4px solid #475569}.metric-section{margin-top:8px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}/deep/ .metric-card.ant-card{height:100%;border:1px solid var(--color-border);border-radius:8px;-webkit-box-shadow:0 6px 18px rgba(15,23,42,.06);box-shadow:0 6px 18px rgba(15,23,42,.06);-webkit-transition:border-color .18s ease,-webkit-transform .18s ease,-webkit-box-shadow .18s ease;transition:border-color .18s ease,-webkit-transform .18s ease,-webkit-box-shadow .18s ease;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,-webkit-transform .18s ease,-webkit-box-shadow .18s ease}/deep/ .metric-card.ant-card:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px);border-color:rgba(30,64,175,.28);-webkit-box-shadow:var(--shadow-card);box-shadow:var(--shadow-card)}/deep/ .metric-card.ant-card .ant-card-head{min-height:58px;border-bottom:1px solid var(--color-border)}/deep/ .metric-card.ant-card .ant-card-head-title{padding:16px 0}/deep/ .metric-card.ant-card .ant-card-body{padding:18px}.metric-card__title{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;color:var(--color-text);font-size:18px;font-weight:800}.metric-card__marker{width:10px;height:10px;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;border-radius:999px;background:var(--color-primary);-webkit-box-shadow:0 0 0 5px rgba(30,64,175,.12);box-shadow:0 0 0 5px rgba(30,64,175,.12)}.metric-card--cyan .metric-card__marker{background:var(--color-cyan);-webkit-box-shadow:0 0 0 5px rgba(14,116,144,.12);box-shadow:0 0 0 5px rgba(14,116,144,.12)}.metric-card--green .metric-card__marker{background:var(--color-green);-webkit-box-shadow:0 0 0 5px rgba(21,128,61,.12);box-shadow:0 0 0 5px rgba(21,128,61,.12)}.metric-card--red .metric-card__marker{background:var(--color-red);-webkit-box-shadow:0 0 0 5px rgba(220,38,38,.1);box-shadow:0 0 0 5px rgba(220,38,38,.1)}.metric-card__description{margin:0 0 16px;color:var(--color-muted)}.period-grid{margin-bottom:0}.period-tile{min-height:96px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:10px;padding:14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-muted)}.period-tile__label{color:var(--color-muted);font-size:13px;font-weight:700}.period-tile__value{color:var(--color-text);font-size:clamp(20px,2vw,26px);line-height:1.15;font-weight:800;font-variant-numeric:tabular-nums}@media (max-width:1024px){.dashboard-hero{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dashboard-hero__actions{width:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.composition-chart-card__body,.composition-chart-grid,.metric-grid{grid-template-columns:1fr}}@media (max-width:640px){.dashboard-page{padding:16px}.dashboard-hero{padding:18px}.dashboard-hero__actions{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.dashboard-hero__btn,.dashboard-hero__range{width:100%}.composition-breakdown-item,.section-heading{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.composition-breakdown-item__value{text-align:left}}