/* ======================================================================
 *  幼小衔接准备清单 /tool/primary-ready
 *  依赖 calc-common.css，支持黑夜模式与打印。
 * ====================================================================== */

.pr-meta { display: flex; gap: 10px; margin-bottom: 14px; }
.pr-name, .pr-month {
    height: 40px;
    border: 1px solid var(--c-border);
    border-radius: 11px;
    background: var(--c-surface-soft);
    color: var(--c-text);
    font-family: inherit;
    font-size: 13.5px;
    padding: 0 13px;
    outline: none;
}
.pr-name { flex: 1; min-width: 0; }
.pr-name:focus, .pr-month:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15); }

/* ---------- 总览 ---------- */
.pr-overview {
    display: flex;
    align-items: center;
    gap: 20px;
    border: 1px solid var(--c-border);
    border-radius: 15px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.07), rgba(99, 102, 241, 0.02));
    padding: 16px 18px;
    margin-bottom: 12px;
}
.pr-ring { position: relative; width: 104px; height: 104px; flex: none; }
.pr-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.pr-ring-bg { fill: none; stroke: var(--c-border); stroke-width: 10; }
.pr-ring-fg {
    fill: none;
    stroke: url(#none);
    stroke: #6366f1;
    stroke-width: 10;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.4s ease;
}
.pr-ring-txt {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
}
.pr-ring-txt b { font-size: 20px; font-weight: 900; color: var(--c-text); line-height: 1.1; }
.pr-ring-txt span { font-size: 10.5px; color: var(--c-text-muted); margin-top: 2px; }

.pr-dims { flex: 1; display: grid; gap: 9px; min-width: 0; }
.pr-dim { display: flex; align-items: center; gap: 10px; }
.pr-dim-name { flex: none; width: 120px; font-size: 12.5px; font-weight: 700; color: var(--c-text-sub); }
.pr-dim-track {
    flex: 1;
    height: 9px;
    border-radius: 99px;
    background: var(--c-surface-soft);
    border: 1px solid var(--c-border);
    overflow: hidden;
}
.pr-dim-track i { display: block; height: 100%; border-radius: 99px; transition: width 0.35s ease; }
.pr-dim-track i.good { background: linear-gradient(90deg, #34c759, #2dd4bf); }
.pr-dim-track i.mid { background: linear-gradient(90deg, #f5a623, #ffb020); }
.pr-dim-track i.low { background: linear-gradient(90deg, #ff6b6b, #ff3b30); }
.pr-dim-pct { flex: none; width: 38px; text-align: right; font-size: 12.5px; color: var(--c-text); }

.pr-legend {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--c-text-muted);
    margin-bottom: 13px;
}
.pr-dot { display: inline-block; width: 11px; height: 11px; border-radius: 50%; margin-right: 4px; vertical-align: -1px; }
.pr-dot--yes { background: #34c759; }
.pr-dot--part { background: #f5a623; }
.pr-dot--no { background: #d1d5db; }
.pr-mini { height: 30px; padding: 0 13px; font-size: 12px; margin-left: auto; }
.pr-legend .pr-mini { margin-left: 0; }
.pr-legend .btn-primary { margin-left: auto; }

/* ---------- 分组列表 ---------- */
.pr-groups { display: grid; gap: 13px; }
.pr-group {
    border: 1px solid var(--c-border);
    border-radius: 14px;
    background: var(--c-bg-card);
    padding: 13px 15px 8px;
}
.pr-group h3 { font-size: 14.5px; font-weight: 800; margin: 0 0 3px; color: var(--c-text); }
.pr-gtip { font-size: 12px; color: var(--c-text-muted); margin: 0 0 9px; }
.pr-group ul { list-style: none; padding: 0; margin: 0; }
.pr-group li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 4px;
    border-top: 1px dashed var(--c-border);
}
.pr-item-txt { font-size: 13px; line-height: 1.65; color: var(--c-text-sub); }
.pr-group li.lv2 .pr-item-txt { color: var(--c-text); font-weight: 600; }
.pr-seg3 { display: flex; flex: none; border: 1px solid var(--c-border); border-radius: 9px; overflow: hidden; }
.pr-lv {
    border: none;
    background: var(--c-surface-soft);
    color: var(--c-text-muted);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    padding: 6px 10px;
    cursor: pointer;
}
.pr-lv + .pr-lv { border-left: 1px solid var(--c-border); }
.pr-lv0.is-on { background: #9ca3af; color: #fff; }
.pr-lv1.is-on { background: #f5a623; color: #fff; }
.pr-lv2.is-on { background: #34c759; color: #fff; }
.pr-group li.lv2 { background: rgba(52, 199, 89, 0.05); border-radius: 8px; }
.pr-group li.lv1 { background: rgba(245, 166, 35, 0.06); border-radius: 8px; }

.pr-advice {
    margin-top: 14px;
    border-radius: 14px;
    border: 1px solid rgba(99, 102, 241, 0.3);
    background: rgba(99, 102, 241, 0.07);
    padding: 13px 15px;
}
.pr-advice b { display: block; font-size: 13.5px; color: var(--c-text); margin-bottom: 5px; }
.pr-advice p { margin: 0; font-size: 12.5px; line-height: 1.85; color: var(--c-text-sub); }
.pr-good-note { margin-top: 8px !important; color: #1f9d43 !important; font-weight: 700; }

/* 打印区 */
#prPrintArea { display: none; }

/* ---------- 右侧 ---------- */
.pr-side h3 { font-size: 14.5px; font-weight: 800; margin: 14px 0 7px; }
.pr-side h3:first-child { margin-top: 0; }
.pr-side p, .pr-side li { font-size: 13px; line-height: 1.85; color: var(--c-text-sub); }
.pr-side b { color: var(--c-text); }
.pr-timeline {
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--c-surface-soft);
    border: 1px solid var(--c-border);
    display: grid;
    gap: 5px;
}
.pr-timeline p { margin: 0; font-size: 12.5px; }
.pr-ban { padding-left: 20px; }
.pr-ban li { margin-bottom: 5px; color: #d97706; }
.pr-five { padding-left: 20px; }
.pr-five li { margin-bottom: 5px; }

@media (max-width: 760px) {
    .pr-overview { flex-direction: column; gap: 14px; }
    .pr-dims { width: 100%; }
    .pr-dim-name { width: 104px; }
    .pr-group li { flex-direction: column; align-items: stretch; gap: 7px; }
    .pr-seg3 { justify-content: stretch; }
    .pr-lv { flex: 1; text-align: center; }
    .pr-meta { flex-direction: column; }
}

/* ---------- 黑夜模式 ---------- */
[data-theme="dark"] .pr-name,
[data-theme="dark"] .pr-month { background: rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .pr-overview { background: rgba(99, 102, 241, 0.1); }
[data-theme="dark"] .pr-ring-bg { stroke: rgba(255, 255, 255, 0.12); }
[data-theme="dark"] .pr-dim-track { background: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .pr-group { background: rgba(255, 255, 255, 0.03); }
[data-theme="dark"] .pr-seg3 { background: rgba(255, 255, 255, 0.02); }
[data-theme="dark"] .pr-lv { background: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .pr-group li.lv2 { background: rgba(52, 199, 89, 0.1); }
[data-theme="dark"] .pr-group li.lv1 { background: rgba(245, 166, 35, 0.12); }
[data-theme="dark"] .pr-advice { background: rgba(99, 102, 241, 0.12); }
[data-theme="dark"] .pr-timeline { background: rgba(255, 255, 255, 0.03); }
[data-theme="dark"] .pr-ban li { color: #fbbf24; }

/* ---------- 打印 ---------- */
@media print {
    body * { visibility: hidden !important; }
    #prPrintArea, #prPrintArea * { visibility: visible !important; }
    #prPrintArea {
        display: block !important;
        position: absolute;
        left: 0; top: 0;
        width: 100%;
        padding: 12mm 14mm;
        background: #fff;
        color: #000;
    }
    .pr-p-title { font-size: 18pt; text-align: center; margin: 0 0 6pt; }
    .pr-p-meta { font-size: 10pt; margin: 0 0 10pt; }
    .pr-p-sum { width: 100%; border-collapse: collapse; margin-bottom: 8pt; }
    .pr-p-sum td { border: 1px solid #666; padding: 4pt 8pt; font-size: 10.5pt; }
    #prPrintArea h2 { font-size: 12.5pt; margin: 10pt 0 4pt; }
    .pr-p-table { width: 100%; border-collapse: collapse; }
    .pr-p-table td { border-bottom: 1px solid #999; padding: 4pt 6pt; font-size: 10pt; }
    .pr-p-mark { width: 16pt; text-align: center; font-size: 12pt; }
    .pr-p-lv { width: 48pt; color: #333; }
    .pr-p-sign { margin-top: 14pt; font-size: 10.5pt; }
    @page { size: A4; margin: 0; }
}
