/**
 * Contract Subscriptions Frontend Styles
 *
 * @package Contract_Subscriptions_For_Woo
 * @since 1.0.0
 */

/* Contract Information Display */
.contract-information {
    margin: 2em 0;
    padding: 1.5em;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 4px;
}

.contract-information h3 {
    margin: 0 0 1em 0;
    color: #333;
    font-size: 1.2em;
    font-weight: 600;
}

.contract-status {
    margin-bottom: 1em;
    padding: 0.5em;
    background: #fff;
    border-radius: 3px;
}

.status-active,
.status-notice-period {
    color: #098525;
    font-weight: 600;
}

.status-expired {
    color: #dc3545;
    font-weight: 600;
}

.status-cancellation-requested {
    color: #967101;
    font-weight: 600;
}

.contract-dates {
    margin-bottom: 1em;
}

.contract-date {
    margin-bottom: 0.5em;
    padding: 0.5em;
    background: #fff;
    border-radius: 3px;
}

.contract-time-remaining {
    margin-bottom: 0.5em;
    padding: 0.5em;
    background: #e3f2fd;
    border-left: 4px solid #2196f3;
    border-radius: 3px;
}

.contract-terms {
    margin-bottom: 1em;
}

.contract-term {
    margin-bottom: 0.5em;
    padding: 0.5em;
    background: #fff;
    border-radius: 3px;
}

.cancellation-info {
    margin-bottom: 1em;
    padding: 0.75em;
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    border-radius: 3px;
}

.cancellation-info strong {
    color: #967101;
}

.cancellation-requested-notice {
    margin-top: 1em;
}

.cancellation-requested-notice .woocommerce-info {
    margin: 0;
    padding: 0.75em;
    background: #d1ecf1;
    border: 1px solid #bee5eb;
    border-radius: 3px;
    color: #0c5460;
}

.cancellation-requested-notice .woocommerce-info::before {
    content: none;
}

/* Contract Action Buttons */
.contract-actions {
    margin-top: 1em;
    padding-top: 1em;
    border-top: 1px solid #e9ecef;
}

.contract-cancel-button,
.contract-resume-button {
    display: inline-block;
    padding: 0.5em 1em;
    margin: 0.25em;
    text-decoration: none;
    border-radius: 3px;
    font-weight: 500;
    text-align: center;
    transition: all 0.2s ease;
    cursor: pointer;
    border: none;
}

.contract-information .contract-cancel-button {
    background: transparent;
    border-color: transparent;
    text-decoration: underline !important;
    padding: 0;
    color: #333333;
}

.contract-information .contract-cancel-button:is(:hover, :focus) {
    background-color: transparent;
    border-color: transparent;
    text-decoration: none !important;
}

.contract-information .contract-resume-button {
    background: transparent;
    border-color: transparent;
    text-decoration: underline !important;
    padding: 0;
    color: #333333;
}

.contract-information .contract-resume-button:is(:hover, :focus) {
    background-color: transparent;
    border-color: transparent;
    text-decoration: none !important;
}

.contract-information .contract-cancel-button:disabled,
.contract-information .contract-resume-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Responsive Design */
@media (max-width: 768px) {
    .contract-information {
        padding: 1em;
        margin: 1em 0;
    }

    .contract-information h3 {
        font-size: 1.1em;
    }

    .contract-date,
    .contract-term,
    .contract-status,
    .cancellation-info {
        padding: 0.75em;
    }

    .contract-cancel-button,
    .contract-resume-button {
        display: block;
        width: 100%;
        margin: 0.5em 0;
    }
}

/* WooCommerce Integration */
.woocommerce-account .contract-information {
    margin-top: 2em;
}

.woocommerce-account .contract-information:first-child {
    margin-top: 0;
}

/* Status Indicators */
.contract-status-indicator {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 0.5em;
}

.status-indicator-active {
    background: #28a745;
}

.status-indicator-expired {
    background: #dc3545;
}

.status-indicator-cancellation-requested {
    background: #ffc107;
}

.status-indicator-notice-period {
    background: #fd7e14;
}

/* Animation for status changes */
.contract-information {
    transition: all 0.3s ease;
}

.contract-information.updating {
    opacity: 0.7;
    pointer-events: none;
}

/* Loading states */
.contract-button-loading {
    position: relative;
}

.contract-button-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid transparent;
    border-top: 2px solid currentColor;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Date Simulation Notice */
.date-simulation-notice {
    margin-bottom: 1em;
}

.date-simulation-notice .woocommerce-info {
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    color: #856404;
    padding: 0.75em;
    border-radius: 3px;
}

.date-simulation-notice .woocommerce-info::before {
    content: none;
}

.date-simulation-notice .woocommerce-info strong {
    color: #d63638;
}

.date-simulation-notice .woocommerce-info small {
    color: #666;
    font-style: italic;
}

/* Cancellation Time Remaining Notice */
.cancellation-time-remaining {
    margin-top: 0.5em;
}

.cancellation-time-remaining .woocommerce-message {
    margin: 0;
    padding: 0.75em;
    background: #eaf6ff;
    border: 1px solid #b6e0fe;
    border-radius: 3px;
    color: #000;
}

.cancellation-time-remaining .woocommerce-message::before {
    content: none;
}

.cancellation-time-remaining .woocommerce-message strong {
    color: #000;
    font-weight: 400;
}