.kc-calc-wrap {
    max-width: 700px; margin: 30px auto; padding: 30px;
    background: #fff; border: 1px solid #e0e0e0; border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.kc-calc-title {
    text-align: center; margin: 0 0 24px; font-size: 22px; color: #1a1a1a;
}
.kc-step { margin-bottom: 16px; }
.kc-step label {
    display: block; margin-bottom: 4px; font-weight: 600; font-size: 14px; color: #333;
}
.kc-step select,
.kc-step input[type="number"],
.kc-step input[type="text"] {
    width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 4px;
    font-size: 15px; box-sizing: border-box;
}
.kc-step select:focus,
.kc-step input:focus { border-color: #2271b1; outline: none; box-shadow: 0 0 0 2px rgba(34,113,177,.2); }
.kc-step small { display: block; margin-top: 4px; color: #888; font-size: 12px; }
.kc-hidden { display: none !important; }

.kc-btn-row { text-align: center; margin-top: 24px; }
.kc-btn {
    display: inline-block; padding: 12px 36px; font-size: 16px; font-weight: 600;
    color: #fff; background: #2271b1; border: none; border-radius: 4px; cursor: pointer;
    transition: background .2s;
}
.kc-btn:hover { background: #135e96; }
.kc-btn:disabled { background: #aaa; cursor: default; }

.kc-result {
    margin-top: 28px; padding: 20px; background: #f0faf0; border: 1px solid #b7e4b7;
    border-radius: 6px;
}
.kc-result-error {
    margin-top: 28px; padding: 20px; background: #fef0f0; border: 1px solid #e4b7b7;
    border-radius: 6px; color: #a00;
}
.kc-result h3 { margin: 0 0 12px; font-size: 18px; color: #1a5a1a; }
.kc-result table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.kc-result th,
.kc-result td { padding: 6px 10px; text-align: left; border-bottom: 1px solid #d4e8d4; font-size: 14px; }
.kc-result th { background: #e0f0e0; font-weight: 600; }
.kc-result .kc-total {
    margin-top: 16px; padding-top: 12px; border-top: 2px solid #2a7a2a;
    font-size: 18px; font-weight: 700; color: #1a5a1a; text-align: right;
}
.kc-result .kc-total span { font-size: 24px; }
.kc-debug { display: none; margin-top: 20px; padding: 10px; background: #f5f5f5; border: 1px solid #ddd; font-family: monospace; font-size: 11px; max-height: 300px; overflow-y: auto; color: #666; }
body.kc-debug-on .kc-debug { display: block; }
