            body {
                font-size: 0.9rem;
            }
            .main-content {
                display: flex;
            }
            .sidebar {
                width: 280px;
                min-width: 280px;
                background: #f8f9fa;
                padding: 1rem;
                transition: margin-left 0.3s;
            }
            .content-area {
                flex-grow: 1;
                padding: 1rem;
            }
            .kpi-card {
                margin-bottom: 1rem;
            }
            #plotMap {
                width: 100%;
                height: 340px;
                border-radius: 0.5rem;
                background: linear-gradient(180deg, #f1f6fb 0%, #dce8f3 100%);
            }
            .map-status {
                min-height: 1.5rem;
            }
            .field-source-note {
                min-height: 1.25rem;
            }
            .field-source-badge {
                font-size: 0.72rem;
                vertical-align: middle;
            }
            .soil-sub-card {
                background: #fff;
                border: 1px solid #e0e6ed;
                border-radius: 0.6rem;
                padding: 0.8rem 1rem;
                margin-bottom: 0.8rem;
            }
            .soil-sub-card-header {
                font-size: 0.85rem;
                font-weight: 600;
                color: #0d6efd;
                margin-bottom: 0.6rem;
                display: flex;
                align-items: center;
                gap: 0.4rem;
            }
            .soil-sub-card-header i {
                font-size: 0.9rem;
            }
            .soil-field-group label.form-label {
                font-size: 0.82rem;
                margin-bottom: 0.15rem;
            }
            .soil-field-group input.form-control {
                font-size: 0.85rem;
            }
            .soil-field-group .field-meta {
                display: flex;
                align-items: center;
                gap: 0.25rem;
                font-size: 0.72rem;
                color: #888;
                margin-top: 0.15rem;
            }
            .soil-layout-shell {
                background: linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%);
                border: 1px solid #dfe8f0;
                border-radius: 1rem;
                padding: 1rem;
            }
            .soil-section-card {
                border: 1px solid #dce5ee;
                border-radius: 0.9rem;
                overflow: hidden;
                box-shadow: 0 0.45rem 1rem rgba(44, 88, 128, 0.05);
            }
            .soil-section-card .card-header {
                background: linear-gradient(180deg, #f8fbff 0%, #eef5fb 100%);
                border-bottom: 1px solid #dce5ee;
            }
            .soil-group-card {
                border: 1px solid #e3ebf2;
                border-radius: 0.85rem;
                background: #fff;
                box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
            }
            .soil-group-card .card-header {
                background: #f7f9fc;
                border-bottom: 1px solid #e8eef4;
                font-weight: 600;
                color: #4f6478;
            }
            .soil-grid {
                display: grid;
                gap: 0.85rem;
                grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
            }
            .soil-grid.compact {
                grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
            }
            .soil-input-tile {
                background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
                border: 1px solid #dbe5ee;
                border-radius: 0.8rem;
                padding: 0.75rem;
                min-height: 100%;
            }
            .soil-input-tile.accent-n {
                border-color: #cfe0f7;
            }
            .soil-input-tile.accent-p {
                border-color: #f1d8cb;
            }
            .soil-input-tile.accent-k {
                border-color: #ecdab5;
            }
            .soil-tile-label {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 0.5rem;
                margin-bottom: 0.45rem;
                font-size: 0.82rem;
                font-weight: 600;
                color: #43586b;
            }
            .soil-tile-label .soil-unit {
                font-size: 0.72rem;
                font-weight: 500;
                color: #7c8b98;
            }
            .soil-input-tile .input-group-text {
                min-width: 3.6rem;
                justify-content: center;
                color: #607487;
                background: #f5f8fb;
                border-color: #dbe5ee;
            }
            .soil-input-tile .form-control,
            .soil-input-tile .form-select {
                border-color: #dbe5ee;
            }
            .soil-input-tile .form-control:focus,
            .soil-input-tile .form-select:focus {
                border-color: #86b7fe;
                box-shadow: 0 0 0 0.18rem rgba(13, 110, 253, 0.12);
            }
            .soil-tile-meta {
                font-size: 0.72rem;
                color: #7d8c99;
                margin-top: 0.45rem;
                line-height: 1.35;
            }
            .soil-tile-meta:empty {
                display: none;
            }
            .texture-layout {
                display: grid;
                grid-template-columns: minmax(220px, 300px) minmax(220px, 1fr);
                gap: 1rem;
                align-items: center;
            }
            .texture-input-stack {
                display: grid;
                gap: 0.75rem;
            }
            .texture-input-stack .input-group-text:first-child {
                min-width: 3.8rem;
            }
            @media (max-width: 991.98px) {
                .texture-layout {
                    grid-template-columns: 1fr;
                }
            }
            .texture-triangle-container {
                position: relative;
                width: 240px;
                height: 220px;
                margin: 0.5rem auto;
            }
            .texture-triangle-container canvas {
                width: 100%;
                height: 100%;
            }
            .texture-triangle-dot {
                width: 10px;
                height: 10px;
                background: #0d6efd;
                border: 2px solid #fff;
                border-radius: 50%;
                position: absolute;
                pointer-events: none;
                box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
                transform: translate(-5px, -5px);
            }
            .texture-label-result {
                font-size: 0.8rem;
                font-weight: 600;
                color: #0d6efd;
                text-align: center;
                margin-top: 0.3rem;
            }
            .fertilizer-option {
                display: block;
                border: 1px solid #d8e2ea;
                border-radius: 0.75rem;
                padding: 0.9rem;
                background: #fff;
                cursor: pointer;
                transition:
                    border-color 0.2s ease,
                    box-shadow 0.2s ease,
                    transform 0.2s ease;
            }
            .fertilizer-option:hover {
                border-color: #80bdff;
                box-shadow: 0 0.35rem 1rem rgba(13, 110, 253, 0.08);
                transform: translateY(-1px);
            }
            .fertilizer-option.active {
                border-color: #0d6efd;
                background: #f4f9ff;
                box-shadow: 0 0.5rem 1.2rem rgba(13, 110, 253, 0.12);
            }
            .fertilizer-option input[type="checkbox"] {
                margin-top: 0.1rem;
            }
            .fertilizer-option.compact {
                padding: 0.5rem 0.65rem;
            }
            .fertilizer-option.compact .form-check {
                min-height: 0;
            }
            .fertilizer-option.compact .form-check-input {
                margin-left: 0;
            }
            .fertilizer-tag {
                font-size: 0.72rem;
            }
            .fertilizer-summary {
                min-height: 2.5rem;
            }
            .custom-fertilizer-panel {
                border: 1px dashed #c7d5e2;
                border-radius: 0.75rem;
                padding: 1rem;
                background: linear-gradient(180deg, #fbfdff 0%, #f3f8fc 100%);
            }
            .custom-fertilizer-panel.disabled {
                opacity: 0.65;
            }
            .npk-balance-module {
                background: linear-gradient(180deg, #f9fbfd 0%, #f3f8fc 100%);
                border: 1px solid #dce8f1;
                border-radius: 1rem;
                padding: 1rem;
            }
            .npk-balance-toolbar {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 0.75rem;
                flex-wrap: wrap;
                margin-bottom: 1rem;
            }
            .npk-chip-group {
                display: flex;
                gap: 0.5rem;
                flex-wrap: wrap;
            }
            .npk-chip {
                border: 1px solid #c8d7e5;
                background: #fff;
                color: #4a5f73;
                border-radius: 999px;
                padding: 0.42rem 0.95rem;
                font-size: 0.82rem;
                font-weight: 600;
                transition: all 0.2s ease;
            }
            .npk-chip:hover {
                border-color: #83a8c7;
                color: #1f4d73;
            }
            .npk-chip.active {
                background: #e9f3ff;
                border-color: #2e7edb;
                color: #165ea8;
                box-shadow: 0 0.45rem 1rem rgba(46, 126, 219, 0.12);
            }
            .npk-chip[data-nutrient="N"].active {
                background: #eaf3ff;
                border-color: #378add;
                color: #1d65af;
            }
            .npk-chip[data-nutrient="P"].active {
                background: #fff0eb;
                border-color: #d85a30;
                color: #b24a27;
            }
            .npk-chip[data-nutrient="K"].active {
                background: #fff5e7;
                border-color: #ba7517;
                color: #8a560f;
            }
            .npk-stage-bar {
                display: flex;
                min-height: 2rem;
                border-radius: 0.85rem;
                overflow: hidden;
                margin-bottom: 0.5rem;
                box-shadow: inset 0 0 0 1px rgba(116, 138, 158, 0.14);
            }
            .npk-stage-seg {
                display: flex;
                align-items: center;
                justify-content: center;
                color: #fff;
                font-size: 0.7rem;
                font-weight: 600;
                padding: 0 0.2rem;
                text-align: center;
            }
            .npk-stage-labels {
                display: flex;
                gap: 0;
                margin-bottom: 1rem;
            }
            .npk-stage-label {
                font-size: 0.68rem;
                color: #788896;
                text-align: center;
                overflow: hidden;
                white-space: nowrap;
            }
            .npk-chart-shell,
            .npk-side-panel,
            .npk-note-card {
                background: #fff;
                border: 1px solid #d9e4ee;
                border-radius: 0.9rem;
                box-shadow: 0 0.45rem 1.2rem rgba(44, 88, 128, 0.06);
            }
            .npk-chart-shell {
                padding: 0.5rem 0.25rem 0.25rem;
            }
            .npk-main-chart {
                width: 100%;
                height: 360px;
            }
            .npk-sub-chart {
                width: 100%;
                height: 220px;
                margin-top: 0.85rem;
            }
            .npk-side-panel,
            .npk-note-card {
                padding: 1rem;
                height: 100%;
            }
            .npk-section-title {
                font-size: 0.78rem;
                font-weight: 700;
                letter-spacing: 0.02em;
                color: #5a6c7e;
                margin-bottom: 0.75rem;
            }
            .npk-summary-grid {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 0.75rem;
            }
            .npk-summary-card {
                background: linear-gradient(180deg, #fbfdff 0%, #f3f8fc 100%);
                border: 1px solid #dbe7f1;
                border-radius: 0.8rem;
                padding: 0.85rem;
            }
            .npk-summary-label {
                font-size: 0.72rem;
                color: #728495;
                margin-bottom: 0.3rem;
            }
            .npk-summary-value {
                font-size: 1.03rem;
                font-weight: 700;
                color: #21384e;
                line-height: 1.35;
            }
            .npk-summary-sub {
                font-size: 0.72rem;
                color: #7e8f9f;
                margin-top: 0.2rem;
            }
            .npk-divider {
                height: 1px;
                background: linear-gradient(
                    90deg,
                    rgba(139, 162, 183, 0) 0%,
                    rgba(139, 162, 183, 0.5) 50%,
                    rgba(139, 162, 183, 0) 100%
                );
                margin: 1rem 0;
            }
            .npk-copy-block {
                font-size: 0.82rem;
                line-height: 1.75;
                color: #415567;
            }
            .npk-copy-block strong {
                color: #1f3951;
            }
            .npk-legend {
                display: flex;
                flex-wrap: wrap;
                gap: 1rem;
                padding: 0.85rem 0.25rem 0;
            }
            .npk-legend-item {
                display: inline-flex;
                align-items: center;
                gap: 0.45rem;
                font-size: 0.78rem;
                color: #597083;
            }
            .npk-legend-line,
            .npk-legend-dot {
                display: inline-block;
                flex: 0 0 auto;
            }
            .npk-legend-line {
                width: 1.25rem;
                height: 0.18rem;
                border-radius: 999px;
            }
            .npk-legend-dot {
                width: 0.8rem;
                height: 0.8rem;
                border-radius: 0.22rem;
            }
            footer {
                margin-top: 2.5rem;
                padding: 2.25rem 0 1.75rem;
                background: linear-gradient(180deg, #243442 0%, #1d2a35 100%);
                color: #d7e1e8;
                border-top: 1px solid rgba(255, 255, 255, 0.08);
            }
            footer h5 {
                margin-bottom: 0.75rem;
                font-size: 1rem;
                font-weight: 600;
                color: #f4f8fb;
                letter-spacing: 0.01em;
            }
            footer p {
                margin-bottom: 0.55rem;
                font-size: 0.88rem;
                line-height: 1.65;
                color: #c2d0d9;
            }
            footer .small,
            footer .text-white-50 {
                font-size: 0.8rem !important;
                line-height: 1.7;
                color: #9fb1bd !important;
            }
            #sidebar-toggle {
                display: none;
            }

            .sensitivity-item { padding: 0.5rem 0; border-bottom: 1px solid #eef2f7; }
            .sensitivity-item:last-child { border-bottom: none; }
            .fertilizer-price-input { width: 70px; display: inline-block; }
            @media (max-width: 768px) {
                body {
                    font-size: 1rem;
                }
                .main-content {
                    flex-direction: column;
                }
                .sidebar {
                    width: 100%;
                    margin-left: -100%;
                    position: fixed;
                    top: 56px;
                    height: calc(100% - 56px);
                    z-index: 1000;
                    overflow-y: auto;
                }
                .sidebar.active {
                    margin-left: 0;
                }
                #sidebar-toggle {
                    display: block;
                    color: white;
                }
                .content-area {
                    padding-top: 60px;
                }
                #plotMap {
                    height: 280px;
                }
                .npk-balance-module {
                    padding: 0.85rem;
                }
                .npk-main-chart {
                    height: 320px;
                }
                .npk-sub-chart {
                    height: 200px;
                }
                .npk-summary-grid {
                    grid-template-columns: 1fr;
                }
                .npk-stage-seg {
                    font-size: 0.62rem;
                }
                footer {
                    padding: 1.75rem 0 1.4rem;
                }
                footer h5 {
                    font-size: 0.96rem;
                }
                footer p {
                    font-size: 0.84rem;
                }
            }
            .nutrient-level-bar {
                display: flex;
                height: 14px;
                border-radius: 3px;
                overflow: hidden;
                margin-top: 4px;
                position: relative;
                border: 1px solid #ccc;
                font-size: 0;
            }
            .nutrient-level-bar .level-segment {
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 8px;
                color: #333;
                font-weight: 600;
                overflow: hidden;
                white-space: nowrap;
            }
            .nutrient-level-bar .level-segment.vl {
                background: #dc3545;
                color: #fff;
            }
            .nutrient-level-bar .level-segment.lo {
                background: #fd7e14;
                color: #fff;
            }
            .nutrient-level-bar .level-segment.mid {
                background: #ffc107;
                color: #333;
            }
            .nutrient-level-bar .level-segment.hi {
                background: #28a745;
                color: #fff;
            }
            .nutrient-level-bar .level-segment.vh {
                background: #155724;
                color: #fff;
            }
            .level-indicator {
                position: absolute;
                top: -2px;
                bottom: -2px;
                width: 3px;
                background-color: #000;
                border-radius: 1px;
                border: 1px solid #fff;
                transform: translateX(-1.5px);
                transition: left 0.25s ease;
                box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
                z-index: 2;
                pointer-events: none;
            }
            .nutrient-level-label {
                font-size: 0.65rem;
                font-weight: 600;
                white-space: nowrap;
                margin-left: 4px;
            }
            #textureTriangleContainer {
                touch-action: none;
            }
            #textureTriangleContainer svg {
                width: 100%;
                height: auto;
            }
            #texture-plot-dot {
                cursor: move;
            }
            .texture-class-label {
                font-size: 10px;
                pointer-events: none;
                fill: #666;
            }
            .texture-class-area {
                fill-opacity: 0.1;
                stroke-width: 1.5;
            }
            .input-group-text {
                min-width: 65px;
                justify-content: center;
            }

            /* 周年总结仪表盘 */
            .summary-dashboard {
            --summary-gap: 1.1rem;
            display: flex;
            flex-direction: column;
            gap: var(--summary-gap);
            }
            .summary-toolbar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.6rem 0;
            }
            .summary-toolbar h5 {
            margin: 0;
            color: #21384e;
            font-weight: 700;
            }
            .summary-kpi-row {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: var(--summary-gap);
            }
            .summary-kpi-card {
            background: linear-gradient(180deg, #fbfdff 0%, #f3f8fc 100%);
            border: 1px solid #dbe5ee;
            border-radius: 0.9rem;
            padding: 1.2rem 1rem;
            text-align: center;
            box-shadow: 0 0.45rem 1rem rgba(44, 88, 128, 0.05);
            transition: box-shadow 0.2s;
            }
            .summary-kpi-card:hover {
            box-shadow: 0 0.5rem 1.2rem rgba(13, 110, 253, 0.08);
            }
            .summary-kpi-icon {
            font-size: 1.3rem;
            margin-bottom: 0.4rem;
            color: #4f6478;
            }
            .summary-kpi-value {
            font-size: 1.8rem;
            font-weight: 800;
            color: #21384e;
            line-height: 1.2;
            }
            .summary-kpi-label {
            font-size: 0.78rem;
            color: #728495;
            margin-top: 0.2rem;
            }
            .summary-kpi-badge {
            display: inline-block;
            margin-top: 0.3rem;
            }
            .summary-section-card {
            background: linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%);
            border: 1px solid #dce5ee;
            border-radius: 0.9rem;
            overflow: hidden;
            box-shadow: 0 0.45rem 1rem rgba(44, 88, 128, 0.05);
            }
            .summary-section-header {
            background: linear-gradient(180deg, #f8fbff 0%, #eef5fb 100%);
            border-bottom: 1px solid #dce5ee;
            padding: 0.7rem 1rem;
            font-weight: 700;
            color: #21384e;
            font-size: 0.92rem;
            }
            .summary-section-body {
            padding: 1rem;
            }
            .summary-nutrient-card {
            background: #fff;
            border: 1px solid #e3ebf2;
            border-radius: 0.85rem;
            padding: 1rem;
            text-align: center;
            }
            .summary-nutrient-card .nutrient-label {
            font-size: 0.85rem;
            font-weight: 700;
            margin-bottom: 0.5rem;
            }
            .summary-nutrient-card.accent-n .nutrient-label { color: #1d65af; }
            .summary-nutrient-card.accent-p .nutrient-label { color: #b24a27; }
            .summary-nutrient-card.accent-k .nutrient-label { color: #8a560f; }
            .summary-nutrient-card .nutrient-row {
            display: flex;
            justify-content: space-between;
            font-size: 0.82rem;
            color: #4a5f73;
            padding: 0.15rem 0;
            }
            .summary-nutrient-card .nutrient-surplus {
            font-size: 1.05rem;
            font-weight: 700;
            margin-top: 0.5rem;
            }
            .nutrient-bar-track {
            height: 6px;
            background: #eef2f7;
            border-radius: 3px;
            margin: 0.6rem 0 0.3rem;
            overflow: hidden;
            }
            .nutrient-bar-fill {
            height: 100%;
            border-radius: 3px;
            transition: width 0.6s ease;
            }
            .trend-indicator {
            display: inline-flex;
            align-items: center;
            gap: 0.3rem;
            font-size: 0.85rem;
            font-weight: 600;
            }
            .trend-indicator.up { color: #198754; }
            .trend-indicator.down { color: #dc3545; }
            .trend-indicator.stable { color: #6c757d; }
            #myTab .nav-link {
                font-size: 1.05rem;
                font-weight: 500;
                padding: 0.55rem 1.25rem;
            }
            @media (max-width: 768px) {
            .summary-kpi-row { grid-template-columns: repeat(2, 1fr); }
            }
            @media print {
            .summary-toolbar .btn, .no-print { display: none !important; }
            .summary-kpi-card { break-inside: avoid; }
            .summary-section-card { break-inside: avoid; }
            body { font-size: 11pt; }
            .tab-content > .tab-pane { display: block !important; opacity: 1 !important; }
            }
