.input-group-custom { margin-bottom: 1rem; }
        .result-row:last-child { border-bottom: none; }
        .deep-dive { margin: 1.8rem 0; }
        .deep-dive p { text-align: justify; }
        .unit-note { font-size: 0.9rem; color: #6c757d; }
        .coord-input { margin-bottom: 0.5rem; }
        .geometry-canvas { width: 100%; height: auto; background-color: #f5f8fc; border: 1px solid #ddd; border-radius: 8px; margin-top: 1.5rem; display: block; }
        .canvas-container { text-align: center; margin-top: 1rem; }
        .legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.2rem 2rem; margin: 0.5rem 0; font-size: 0.9rem; }
        .legend-item { display: flex; align-items: center; gap: 0.3rem; }
        .legend-color { width: 16px; height: 16px; border-radius: 50%; }
        .legend-color.roof { background-color: #8B5A2B; }
        .legend-color.ridge { background-color: #C0392B; }
        .legend-color.rafter { background-color: #2C3E50; }
        .legend-color.overhang { background-color: #27AE60; }
        .roof-result-summary { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border-radius: 12px; padding: 1.2rem 1.5rem; margin: 1rem 0; }
        .roof-stat { display: inline-block; margin-right: 2rem; font-size: 1rem; }
        .roof-stat .label { color: #6c757d; font-weight: 400; }
        .roof-stat .value { font-weight: 700; font-size: 1.4rem; color: #1a3a5c; }
        .material-badge { display: inline-block; padding: 0.2rem 0.8rem; border-radius: 12px; font-size: 0.8rem; font-weight: 600; margin: 0.15rem; }
        .material-badge.asphalt { background: #6c757d; color: white; }
        .material-badge.metal { background: #7f8c8d; color: white; }
        .material-badge.wood { background: #8B6B4D; color: white; }
        .material-badge.tile { background: #B86B47; color: white; }
        .material-badge.slate { background: #5D6D7E; color: white; }
        .input-unit { font-size: 0.8rem; color: #6c757d; margin-left: 0.25rem; }
        .cost-breakdown { background: #ffffff; border-radius: 8px; padding: 1rem 1.5rem; border: 1px solid #e0e0e0; margin: 1rem 0; }
        .cost-breakdown .row-item { display: flex; justify-content: space-between; padding: 0.4rem 0; border-bottom: 1px solid #f0f0f0; }
        .cost-breakdown .row-item:last-child { border-bottom: none; font-weight: 700; font-size: 1.2rem; color: #1a3a5c; }
        .cost-breakdown .row-item .label { color: #495057; }
        .cost-breakdown .row-item .amount { font-weight: 500; }