/*
Theme Name: Rinnovabili.biz 2026
Theme URI: https://greenpulse.energy
Author: Senior Frontend Engineer
Description: Tema Single Page Application (SPA) basato su React per la gestione energetica 2026.
Version: 1.4.0
Text Domain: greenpulse-energy
*/

/* Reset di base */
body, html {
    margin: 0;
    padding: 0;
}


.greenpulse-downloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;padding:10px 0}.greenpulse-download-item{padding:20px;border:1px solid #e5e7eb;border-radius:18px;background:#fff}.greenpulse-download-item a{display:inline-block;margin-top:10px;padding:10px 14px;border-radius:999px;background:#003FFF;color:#fff;text-decoration:none;font-weight:700}.greenpulse-download-item a:hover{background:#002BB3}


.greenpulse-card,.greenpulse-form-card,.greenpulse-newsletter-card{background:#fff;border:1px solid #e5e7eb;border-radius:22px;padding:24px;box-shadow:0 8px 30px rgba(15,23,42,.05);margin:0 0 24px}.greenpulse-card-grid,.greenpulse-practice-grid,.greenpulse-reserved-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.greenpulse-section-head h2,.greenpulse-section-head h3{margin:0 0 8px;font-size:1.7rem;line-height:1.2}.greenpulse-section-head p,.greenpulse-muted{color:#6b7280}.greenpulse-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.greenpulse-form-grid p{margin:0}.greenpulse-form-grid label{display:block;margin:0 0 8px;font-weight:700}.greenpulse-form-grid input,.greenpulse-form-grid select,.greenpulse-form-grid textarea,.greenpulse-inline-form input{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:14px;background:#fff;color:#111827}.greenpulse-form-grid input:focus,.greenpulse-form-grid select:focus,.greenpulse-form-grid textarea:focus,.greenpulse-inline-form input:focus{outline:none;border-color:#003FFF;box-shadow:0 0 0 3px rgba(0,63,255,.12)}.greenpulse-form-full{grid-column:1 / -1}.greenpulse-check-row label{display:flex;align-items:flex-start;gap:10px;font-weight:500}.greenpulse-check-row input{width:auto;margin-top:3px}.greenpulse-inline-form{display:flex;gap:12px;flex-wrap:wrap}.greenpulse-inline-form input{flex:1 1 260px}.greenpulse-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:999px;background:#003FFF;color:#fff;text-decoration:none;font-weight:800;border:0}.greenpulse-btn:hover{background:#002BB3;color:#fff}.greenpulse-btn.secondary{background:#eef2ff;color:#003FFF}.greenpulse-btn.secondary:hover{background:#dbe5ff}.greenpulse-notice{border-radius:16px;padding:14px 18px;margin:0 0 20px}.greenpulse-notice p{margin:0}.greenpulse-notice-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.greenpulse-notice-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.greenpulse-notice-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.greenpulse-practice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.greenpulse-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#003FFF;font-size:.85rem;font-weight:700;white-space:nowrap}.greenpulse-box{margin-top:16px;padding:14px;border-radius:16px;background:#f8fafc;border:1px solid #e5e7eb}.greenpulse-box p,.greenpulse-box pre{margin:8px 0 0}.greenpulse-box pre{white-space:pre-wrap;max-height:220px;overflow:auto;font-family:inherit;font-size:.94rem}.greenpulse-link-list{list-style:none;padding:0;margin:0}.greenpulse-link-list li{padding:10px 0;border-bottom:1px solid #edf2f7}.greenpulse-link-list li:last-child{border-bottom:0}.greenpulse-link-list a{text-decoration:none;color:#003FFF;font-weight:700}.greenpulse-timeline{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px}.greenpulse-timeline-step{position:relative;padding-left:22px;color:#6b7280}.greenpulse-timeline-step:before{content:"";position:absolute;left:0;top:.35rem;width:10px;height:10px;border-radius:999px;background:#cbd5e1}.greenpulse-timeline-step.is-done,.greenpulse-timeline-step.is-current{color:#111827;font-weight:700}.greenpulse-timeline-step.is-done:before,.greenpulse-timeline-step.is-current:before{background:#003FFF}.greenpulse-hp{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}@media (max-width:767px){.greenpulse-form-grid{grid-template-columns:1fr}.greenpulse-practice-head{flex-direction:column;align-items:flex-start}.greenpulse-inline-form{flex-direction:column}}


.greenpulse-news-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.greenpulse-news-grid .greenpulse-card{margin:0}@media (max-width:1200px){.greenpulse-news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.greenpulse-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.greenpulse-news-grid{grid-template-columns:1fr}}

.greenpulse-summary-readonly {
    width: 100%;
    min-height: 160px;
    resize: vertical;
    background: #f7f7f7;
}


/* Frontend native login page */
.greenpulse-login-body {
    background: #f5f7fb;
}
.greenpulse-login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
}
.greenpulse-login-card {
    width: 100%;
    max-width: 520px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.08);
    padding: 28px;
}
.greenpulse-login-brand h1 {
    margin: 0 0 8px;
    font-size: 30px;
    line-height: 1.15;
}
.greenpulse-login-kicker {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #dc2626;
}
.greenpulse-login-brand p:last-child {
    margin: 0 0 20px;
    color: #475569;
}
.greenpulse-login-message {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 10px;
    font-size: 14px;
}
.greenpulse-login-message.is-success {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #065f46;
}
.greenpulse-login-form-box form {
    display: grid;
    gap: 14px;
}
.greenpulse-login-form-box label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}
.greenpulse-login-form-box input[type="text"],
.greenpulse-login-form-box input[type="password"] {
    width: 100%;
    min-height: 46px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 10px 12px;
    box-sizing: border-box;
}
.greenpulse-login-form-box .login-remember {
    display: flex;
    align-items: center;
    gap: 8px;
}
.greenpulse-login-form-box .login-remember label {
    margin: 0;
    font-weight: 500;
}
.greenpulse-login-form-box input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border: 0;
    border-radius: 10px;
    background: #dc2626;
    color: #ffffff;
    font-weight: 700;
    cursor: pointer;
    padding: 0 18px;
}
.greenpulse-login-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    margin-top: 18px;
}
.greenpulse-login-actions a {
    font-weight: 600;
    text-decoration: none;
}
@media (max-width: 640px) {
    .greenpulse-login-card {
        padding: 22px 18px;
        border-radius: 12px;
    }
    .greenpulse-login-brand h1 {
        font-size: 26px;
    }
}


/* User data page */
.greenpulse-userdata-card {
    max-width: 980px;
    margin: 0 auto;
}
.greenpulse-userdata-form .greenpulse-form-submit {
    grid-column: 1 / -1;
}
.greenpulse-userdata-summary {
    margin-top: 20px;
}
.greenpulse-userdata-list {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}
.greenpulse-userdata-list li {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 12px;
    padding: 12px 14px;
    background: rgba(255,255,255,.7);
}
.greenpulse-userdata-list span {
    display: block;
    font-size: 12px;
    opacity: .7;
    margin-bottom: 4px;
}
.greenpulse-userdata-list strong {
    display: block;
    word-break: break-word;
}


.greenpulse-account-shell{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}
.greenpulse-account-shell__welcome{display:flex;align-items:center;gap:10px;font-weight:700}
.greenpulse-account-shell__icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;background:#111;color:#fff;font-size:18px}
.greenpulse-userdata-inline-note{margin:0 0 12px;color:#4b5563}
@media (max-width:640px){.greenpulse-account-shell{align-items:flex-start}.greenpulse-account-shell__logout{width:100%;text-align:center}}
.greenpulse-account-nav,.greenpulse-account-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 18px}
.greenpulse-account-nav .greenpulse-btn,.greenpulse-account-toolbar .greenpulse-btn{margin:0}
.greenpulse-account-toolbar__welcome{display:flex;align-items:center;gap:10px;font-weight:700}
.greenpulse-account-toolbar__icon,.greenpulse-account-shell__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:#fff1f1;color:#b11116;font-size:18px}
.greenpulse-account-toolbar__actions{display:flex;gap:10px;flex-wrap:wrap}
.greenpulse-userdata-form .greenpulse-form-submit{align-self:end}
@media (max-width:640px){.greenpulse-account-nav,.greenpulse-account-toolbar{align-items:flex-start}.greenpulse-account-toolbar__actions{width:100%}.greenpulse-account-toolbar__actions .greenpulse-btn,.greenpulse-account-nav .greenpulse-btn{width:100%;text-align:center}}

.greenpulse-form-grid small{display:block;margin-top:6px;color:#6b7280;font-size:12px;}
