/* /index 指数页：原有布局 + CIALLO 设计系统色值（由 templates/dashboard.php 引用） */

.head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.head h1{font-size:32px;margin:10px 0 5px}.eyebrow{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--blue)}.muted{font-size:14px;color:var(--fg-3);line-height:1.75}.fresh{display:inline-flex;align-items:center;gap:7px;margin-top:8px}.dot{width:8px;height:8px;border-radius:50%;background:#36a269}.dot.stale{background:#e3a326}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px}.card,.panel{background:var(--bg);border:1px solid var(--line);border-radius:0;box-shadow:0 4px 16px transparent}.card{padding:20px;min-width:0}.card.primary{background:var(--bg)}.label{font-size:13px;color:var(--fg-3)}.value{font-size:32px;font-weight:780;margin:10px 0;letter-spacing:-.03em}.mini{font-size:13px;color:var(--fg-3)}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:34px 0 14px}.section-title h2,.panel h2{font-size:21px;margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{padding:22px;min-width:0}.panel.wide{grid-column:1/-1}.chart{width:100%;height:auto;display:block;margin-top:14px}.chart-grid{stroke:var(--line);stroke-width:1}.chart-fill{fill:rgba(var(--blue-rgb),.12)}.chart-line{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--bg);stroke:var(--blue);stroke-width:2}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:13px;color:var(--fg-3)}.legend i{display:inline-block;width:10px;height:10px;border-radius:0;margin-right:6px}.stack{display:flex;height:16px;overflow:hidden;border-radius:999px;background:var(--fill);margin:18px 0}.stack span{display:block;min-width:2px}.donut-layout{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center;margin-top:16px}.donut{width:150px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center}.donut:after{content:'';width:94px;aspect-ratio:1;border-radius:50%;background:var(--bg)}.stats-list{display:grid;gap:12px}.stats-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:10px}.stats-row:last-child{border:0}.stats-row strong{font-variant-numeric:tabular-nums}.range{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.range a{padding:8px 16px;border:1px solid var(--line);background:var(--bg);border-radius:999px}.range .active{background:var(--blue);color:var(--bg);border-color:var(--blue)}.analytics-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.analytics-cards .card{padding:16px}.analytics-cards .value{font-size:26px}.table-wrap{overflow-x:auto;margin-top:15px}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:right;padding:12px;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}th{font-size:13px;color:var(--fg-3)}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.help-item{min-width:0;padding:15px;border:1px solid var(--line);border-radius:0;background:var(--fill);display:flex;flex-direction:column;align-items:flex-start;gap:7px}.help-example{max-width:100%;padding:5px 9px;background:var(--fill);border-radius:0}.search-help code{font-size:14px;white-space:normal;overflow-wrap:anywhere}.empty{padding:24px;border:1px dashed var(--line);border-radius:0;color:var(--fg-3)}.metric-note{display:flex;justify-content:space-between;gap:16px;margin-top:12px;font-size:13px;color:var(--fg-3)}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.chart-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.zero-day-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;padding:6px 10px;cursor:pointer;font:500 12px/1 var(--f-mono)}.zero-day-toggle:hover{background:var(--fill)}.zero-day-toggle[aria-pressed="true"]{border-color:var(--blue);background:var(--fill);color:var(--blue)}.zero-day-toggle .toggle-mark{width:8px;height:8px;border-radius:50%;background:var(--fg-3)}.zero-day-toggle[aria-pressed="true"] .toggle-mark{background:var(--blue)}.chart-actions{display:flex;gap:7px}.chart-actions button{border:1px solid var(--line);background:var(--bg);color:var(--blue);border-radius:0;padding:7px 11px;cursor:pointer;font:inherit}.chart-actions button:hover{background:var(--fill)}.interactive-chart{position:relative;margin-top:12px;touch-action:none;cursor:grab;user-select:none;outline:none}.interactive-chart.dragging{cursor:grabbing}.interactive-chart svg{display:block;width:100%;height:auto;overflow:visible}.interactive-chart [data-grid] line{stroke:var(--line);stroke-width:1}.interactive-chart [data-axis] text{fill:var(--fg-3);font-size:11px}.interactive-chart [data-area]{fill:rgba(var(--blue-rgb),.12)}.interactive-chart [data-line]{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.interactive-chart [data-points] circle{fill:var(--bg);stroke:var(--blue);stroke-width:1.5}.interactive-chart [data-cursor]{stroke:var(--fg-3);stroke-width:1;stroke-dasharray:4 4;display:none}.chart-tooltip{position:absolute;z-index:3;pointer-events:none;transform:translate(-50%,-110%);padding:7px 9px;background:var(--fg);color:var(--bg);border-radius:0;font-size:12px;white-space:nowrap;box-shadow:0 5px 18px transparent}.interactive-chart [data-milestone] line{stroke:#df6c4f;stroke-width:1.5;stroke-dasharray:4 3}.interactive-chart [data-milestone] circle{fill:#df6c4f;stroke:var(--bg);stroke-width:2}.interactive-chart [data-milestone] rect{fill:#df6c4f}.interactive-chart [data-milestone] text{fill:var(--bg);font-size:11px;font-weight:700;pointer-events:none}.interactive-chart [data-milestone] .milestone-hit{fill:transparent;cursor:pointer;pointer-events:all}.interactive-chart [data-milestone] .milestone-own-sites{fill:#7067cf}.interactive-chart [data-milestone] .milestone-own-feeds{fill:#2e9b72}.interactive-chart [data-milestone] .milestone-own-sites-line{stroke:#7067cf}.interactive-chart [data-milestone] .milestone-own-feeds-line{stroke:#2e9b72}.milestone-wiki-body{padding:22px}.milestone-wiki-date{display:inline-block;margin-bottom:14px;padding:5px 10px;border-radius:999px;background:var(--fill);color:var(--blue);font-size:13px;font-weight:700}.milestone-wiki-body p{margin:0;color:var(--fg);line-height:1.85}.milestone-wiki-note{margin-top:16px!important;padding-top:14px;border-top:1px solid var(--line);color:var(--fg-3)!important;font-size:13px}.day-modal[hidden]{display:none}.day-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px}.day-modal-backdrop{position:absolute;inset:0;background:#17233799;backdrop-filter:blur(3px)}.day-modal-card{position:relative;width:min(780px,100%);max-height:min(82vh,850px);display:flex;flex-direction:column;background:var(--bg);border-radius:0;box-shadow:0 24px 70px transparent;overflow:hidden}.day-modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:20px 22px;border-bottom:1px solid var(--line)}.day-modal-head h2{margin:0 0 5px;font-size:21px}.day-modal-close{border:0;background:var(--fill);border-radius:50%;width:36px;height:36px;font-size:23px;color:var(--fg);cursor:pointer}.day-modal-body{overflow:auto;padding:8px 22px 20px}.day-articles{list-style:none;margin:0;padding:0}.day-article{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.day-time{font-variant-numeric:tabular-nums;color:var(--fg);font-weight:700}.day-article a{color:var(--fg);font-weight:650;line-height:1.5}.day-host{font-size:12px;color:var(--fg-3);margin-top:5px;overflow-wrap:anywhere}.load-more{display:block;margin:18px auto 0;border:1px solid var(--line);background:var(--fill);color:var(--blue);border-radius:0;padding:10px 22px;cursor:pointer}.modal-status{text-align:center;padding:28px;color:var(--fg-3)}.hour-chart-wrap{padding:16px 0 12px;border-bottom:1px solid var(--line);margin-bottom:4px}.hour-chart-title{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:7px}.hour-chart{display:block;width:100%;height:auto}.hour-chart .grid{stroke:var(--line);stroke-width:1}.hour-chart .bar{fill:var(--blue)}.hour-chart .bar:hover{fill:var(--blue)}.hour-chart .axis-text{fill:var(--fg-3);font-size:10px}.hour-chart-tip{font-size:12px;color:var(--fg-3);text-align:center;min-height:18px;margin-top:4px}@media(max-width:600px){.day-modal{padding:8px}.day-modal-card{max-height:90vh}.day-modal-head,.day-modal-body{padding-left:15px;padding-right:15px}.day-article{grid-template-columns:64px 1fr}}
@media(max-width:850px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.grid{grid-template-columns:1fr}.panel.wide{grid-column:auto}}@media(max-width:600px){main{padding:24px 14px}.head h1{font-size:28px}.card,.panel{padding:16px}.value{font-size:27px}.analytics-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.donut-layout{grid-template-columns:1fr}.donut{margin:auto}.help-grid{grid-template-columns:1fr}}@media(max-width:360px){.cards,.analytics-cards{grid-template-columns:1fr}}

.data-note{margin:10px 0 0}.label-with-help{display:flex;align-items:center;gap:5px}.info-button{display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border:1px solid var(--fg-3);border-radius:50%;background:var(--bg);color:var(--fg-3);font:600 12px/1 var(--f-mono);cursor:pointer}.info-button:hover,.info-button:focus-visible{border-color:var(--blue);color:var(--blue);outline:none;box-shadow:0 0 0 3px #7652b822}.info-dialog-body{padding:22px 24px 26px;color:var(--fg);line-height:1.8}.info-dialog-body p{margin:0 0 14px}.info-dialog-body p:last-child{margin-bottom:0}.info-dialog-body a{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.index-section{margin-top:34px}.index-title{display:flex;align-items:center;gap:8px}.help-dot{appearance:none;border:1px solid var(--fg-3);background:var(--bg);color:var(--fg-3);border-radius:50%;width:20px;height:20px;padding:0;font:600 12px/18px var(--f-mono);cursor:pointer}.help-dot:hover{color:var(--blue);border-color:var(--blue)}.index-grid{display:grid;grid-template-columns:minmax(210px,.58fr) minmax(0,1.42fr);gap:16px}.index-summary{display:flex;flex-direction:column;justify-content:space-between;min-height:270px}.index-score{font-size:58px;font-weight:820;line-height:1;letter-spacing:-3px;color:var(--blue);margin:24px 0 8px}.index-score small{font-size:15px;letter-spacing:0;color:var(--fg-3);font-weight:650}.index-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.index-stat{padding:12px;border:1px solid var(--line);border-radius:0;background:var(--fill)}.index-stat strong,.index-stat span{display:block}.index-stat strong{font-size:18px}.index-stat span{font-size:11px;color:var(--fg-3);margin-top:3px}.score-chart{height:232px;display:flex;align-items:stretch;gap:10px;padding:14px 4px 0;border-bottom:1px solid var(--line)}.score-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.score-count{font-size:11px;color:var(--fg-3);margin-bottom:5px;white-space:nowrap}.score-bar{width:min(38px,72%);min-height:3px;border-radius:0;background:var(--blue)}.score-label{font-size:12px;font-weight:700;margin-top:7px}.band-row{display:flex;height:12px;overflow:hidden;border-radius:99px;background:var(--line);margin:18px 0 12px}.band-seg{min-width:2px}.band-legend{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:12px;color:var(--fg-3)}.band-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.scale-charts{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(260px,1.25fr);gap:16px;margin-top:16px}.scale-donut-card,.scale-bars-card{min-height:270px}.scale-donut-wrap{display:flex;align-items:center;justify-content:center;gap:28px;min-height:205px}.scale-donut{width:150px;height:150px;border-radius:50%;position:relative;flex:0 0 auto}.scale-donut:after{content:"";position:absolute;inset:32px;border-radius:50%;background:var(--bg)}.scale-donut-center{position:absolute;inset:0;z-index:1;display:grid;place-content:center;text-align:center}.scale-donut-center strong{font-size:21px}.scale-donut-center span{font-size:11px;color:var(--fg-3)}.scale-legend{display:grid;gap:12px}.scale-legend span{font-size:12px;color:var(--fg-3)}.scale-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.scale-legend strong{display:block;margin-left:17px;color:var(--fg);font-size:16px}.scale-bars{height:190px;display:flex;align-items:flex-end;justify-content:space-around;gap:24px;padding:16px 12px 0;border-bottom:1px solid var(--line)}.scale-bar-col{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.scale-bar-count{font-size:12px;color:var(--fg-3);margin-bottom:7px}.scale-bar{width:min(70px,70%);min-height:3px;border-radius:0}.scale-bar-label{font-size:13px;font-weight:750;margin-top:8px}.scale-bar-range{font-size:11px;color:var(--fg-3);margin-top:2px}.score-tendency-axis{position:relative;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:13px;padding-top:10px;color:var(--fg-3);font-size:11px}.score-tendency-axis:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--fg-3)}.score-tendency-axis span:last-child{text-align:right}.index-section>.index-grid,.index-section>div:first-of-type{display:block}.index-section .index-summary{min-height:auto}.index-section .index-summary>div:first-child{max-width:680px}.score-axis-caption{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:12px;font-size:11px;color:var(--fg-3)}.score-axis-caption:before,.score-axis-caption:after{content:"";height:1px;background:var(--fg-3)}.score-axis-caption .left{text-align:left}.score-axis-caption .right{text-align:right}.score-axis-title{text-align:center;font-size:12px;color:var(--fg-3);margin-top:5px}.eight-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px;align-items:end}.metric-chart{height:210px;padding:14px 4px 0;border-bottom:1px solid var(--line)}.metric-col{height:100%;display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:flex-end}.metric-value{font-size:10px;color:var(--fg-3);margin-bottom:5px;white-space:nowrap}.metric-bar{width:min(36px,76%);min-height:3px;border-radius:0}.metric-label{font-size:12px;font-weight:750;margin-top:7px}.score-donut-card{margin-top:16px}.score-donut-layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:24px;min-height:220px}.score-donut{width:168px;height:168px;border-radius:50%;position:relative;margin:auto}.score-donut:after{content:"";position:absolute;inset:38px;border-radius:50%;background:var(--bg)}.score-donut-center{position:absolute;inset:0;z-index:1;display:grid;place-content:center;text-align:center}.score-donut-center strong{font-size:21px}.score-donut-center span{font-size:11px;color:var(--fg-3)}.score-eight-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.score-eight-legend span{padding:10px;border:1px solid var(--line);border-radius:0;font-size:11px;color:var(--fg-3)}.score-eight-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.score-eight-legend strong{display:block;color:var(--fg);font-size:14px;margin-top:4px}.score-eight-legend small{display:block;color:var(--fg-3);margin-top:2px}@media(max-width:760px){.score-donut-layout{grid-template-columns:1fr}.score-eight-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.eight-grid{gap:4px}.metric-value{font-size:9px;writing-mode:vertical-rl}.score-axis-caption{font-size:10px;gap:5px}}.info-dialog{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}.info-dialog[hidden]{display:none}.info-dialog-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.46)}.info-dialog-card{position:relative;width:min(460px,100%);background:var(--bg);border-radius:0;padding:22px;box-shadow:0 24px 80px rgba(15,23,42,.24)}.info-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.info-dialog-head h2{margin:0}.info-dialog-close{border:0;background:var(--fill);border-radius:50%;width:32px;height:32px;font-size:20px;cursor:pointer}.info-dialog-card p{line-height:1.75;color:var(--fg-3);margin:14px 0 0}@media(max-width:760px){.index-grid,.scale-charts{grid-template-columns:1fr}.scale-donut-wrap{min-height:190px}.index-grid{grid-template-columns:1fr}.index-summary{min-height:auto}.index-score{font-size:50px}.score-chart{gap:5px}.score-count{font-size:10px;writing-mode:vertical-rl}.score-bar{width:min(28px,76%)}}
/* Only milestone label hit areas receive pointer input; overlays stay passive. */
.interactive-chart [data-cursor],.interactive-chart [data-milestone] line,.interactive-chart [data-milestone] circle,.interactive-chart [data-milestone] rect:not(.milestone-hit){pointer-events:none}
.index-section>.index-grid{display:grid;grid-template-columns:minmax(240px,.58fr) minmax(0,1.42fr);align-items:stretch;gap:16px}.index-section .index-summary{min-height:100%;padding:24px}.index-summary-title{margin:0;font-size:20px;line-height:1.35}.index-section .index-summary>div:first-child{max-width:none}.index-grid .score-donut-card{margin-top:0;height:100%}.index-method{display:inline-flex;align-items:center;gap:6px}.index-method .help-dot{flex:0 0 auto}.info-dialog-card{width:min(540px,100%)}.info-dialog-body-copy{margin-top:16px}.info-dialog-body-copy p{margin:0 0 12px}.info-dialog-body-copy p:last-child{margin-bottom:0}.info-dialog-body-copy strong{color:var(--fg)}@media(max-width:760px){.index-section>.index-grid{grid-template-columns:1fr}.index-section .index-summary{min-height:auto}.index-grid .score-donut-card{height:auto}}

/* ---- 设计系统覆盖 ---- */
.dash{padding-top:40px;padding-bottom:20px;--col:1180px;max-width:1180px}
.dash .head h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.03em;line-height:1.1}
.dash .eyebrow{font:500 11px var(--f-mono);letter-spacing:.18em;color:var(--blue)}
.dash .dot{background:var(--signal);box-shadow:0 0 0 3px rgba(var(--signal-rgb),.25)}
.dash .card,.dash .panel{background:var(--bg);border:1px solid var(--line);box-shadow:none}
.dash .card{transition:border-color .25s}.dash .card:hover{border-color:var(--blue)}
.dash .card.primary{border-top:3px solid var(--blue)}
.dash .label{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.dash .value,.dash .index-score,.dash .stats-row strong,.dash .scale-legend strong{font-family:var(--f-mono);font-weight:500;letter-spacing:-.03em;color:var(--fg)}
.dash .section-title h2,.dash .panel h2{font-size:20px;font-weight:600;letter-spacing:-.01em}
.dash .section-title{border-bottom:1px solid var(--line);padding-bottom:10px}
.dash .range a{background:var(--bg);border-color:var(--line);color:var(--fg-2)}
.dash .range a:hover{border-color:var(--blue);color:var(--blue)}
.dash .range .active{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.dash th{font:500 11px var(--f-mono);letter-spacing:.06em;color:var(--fg-3)}
.dash td{font-variant-numeric:tabular-nums}
.dash .interactive-chart [data-axis] text,.dash .hour-chart .axis-text{fill:var(--fg-3);font-family:var(--f-mono)}
.dash .chart-tooltip{background:var(--fg);color:var(--bg);font-family:var(--f-mono)}
.dash .day-modal-backdrop,.dash .info-dialog-backdrop{background:rgba(var(--bg-rgb),.7);backdrop-filter:blur(6px)}
.dash .day-modal-card,.dash .info-dialog-card{border:1px solid var(--line);box-shadow:0 24px 60px rgba(var(--fg-rgb),.12)}
.dash .day-modal-close,.dash .info-dialog-close{border-radius:999px}
.dash .help-example{background:var(--fill)}
.dash .chart-actions button,.dash .zero-day-toggle,.dash .load-more{border-radius:999px}
.dash .donut:after,.dash .scale-donut:after,.dash .score-donut:after{background:var(--bg)}
.dash .interactive-chart [data-milestone] rect:not(.milestone-hit){fill:var(--fg)}
.dash .interactive-chart [data-milestone] text{fill:var(--bg)}
.dash .interactive-chart [data-milestone] circle{fill:var(--fg);stroke:var(--bg)}
.dash .interactive-chart [data-milestone] line{stroke:var(--fg-3)}
.dash .interactive-chart [data-milestone] .milestone-own-sites,.dash .interactive-chart [data-milestone] .milestone-own-feeds{fill:var(--blue)}
.dash .interactive-chart [data-milestone] .milestone-own-sites-line,.dash .interactive-chart [data-milestone] .milestone-own-feeds-line{stroke:var(--blue)}
.dash .day-article a{color:var(--fg)}.dash .day-article a:hover{color:var(--blue)}
.dash a{color:var(--blue)}
