:root{
    --cream:#f5f2e9;
    --cream2:#ebe7dd;
    --white:#fff;
    --ink:#101510;
    --forest:#173d31;
    --forest2:#0c2920;
    --sage:#dce4dc;
    --muted:#6d756e;
    --line:#d9dcd5;
    --lime:#dff25c;
    --shadow:0 35px 100px rgba(15,31,21,.11);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:Arial,Helvetica,sans-serif;
    -webkit-font-smoothing:antialiased;
}

a{color:inherit}
button,input,select,textarea{font:inherit}
main{overflow:hidden}


/* HEADER */

.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(245,242,233,.95);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(16,21,16,.08);
}

.header-shell{
    max-width:1280px;
    height:76px;
    margin:auto;
    padding:0 30px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.brand{
    display:flex;
    align-items:center;
    gap:11px;
    text-decoration:none;
}

.brand-mark{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:var(--forest);
    color:var(--lime);
    font-weight:900;
    font-size:1.1rem;
}

.brand-copy{
    display:flex;
    flex-direction:column;
    line-height:1;
}

.brand-copy strong{font-size:1rem}

.brand-copy small{
    margin-top:5px;
    color:#7a817b;
    font-size:.65rem;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:26px;
}

.main-nav a{
    color:#434b45;
    text-decoration:none;
    font-size:.86rem;
    font-weight:600;
}

.nav-cta{
    padding:11px 16px;
    border-radius:999px;
    background:var(--ink);
    color:#fff!important;
}

.menu-toggle{
    display:none;
    border:0;
    background:transparent;
}

.menu-toggle span{
    width:22px;
    height:2px;
    display:block;
    margin:5px;
    background:var(--ink);
}


/* HERO */

.hero{
    position:relative;
    border-bottom:1px solid var(--line);
}

.hero:before{
    content:"";
    position:absolute;
    right:-340px;
    top:-350px;
    width:700px;
    height:700px;
    border-radius:50%;
    background:rgba(204,215,201,.38);
}

.hero-shell{
    position:relative;
    max-width:1280px;
    min-height:700px;
    margin:auto;
    padding:76px 30px;
    display:grid;
    grid-template-columns:1fr .92fr;
    gap:72px;
    align-items:center;
}

.eyebrow{
    display:flex;
    align-items:center;
    gap:9px;
    color:#747c75;
    font-size:.68rem;
    letter-spacing:.15em;
    font-weight:800;
}

.eyebrow span{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#496d59;
}

.hero h1{
    max-width:760px;
    margin:17px 0 0;
    font-size:clamp(3.7rem,6.8vw,6.8rem);
    line-height:.89;
    letter-spacing:-.065em;
}

.hero h1 em{
    display:block;
    margin-top:10px;
    color:#89918a;
    font-style:normal;
}

.hero-lead{
    max-width:620px;
    margin-top:29px;
    color:#646d66;
    font-size:1.12rem;
    line-height:1.65;
}

.hero-actions{
    margin-top:31px;
    display:flex;
    gap:23px;
    align-items:center;
}

.button-primary{
    padding:15px 20px;
    display:flex;
    align-items:center;
    gap:28px;
    border-radius:999px;
    background:var(--ink);
    color:#fff;
    text-decoration:none;
    font-size:.87rem;
    font-weight:800;
}

.button-link{
    text-decoration:none;
    font-size:.86rem;
    font-weight:700;
}

.hero-benefits{
    margin-top:29px;
    display:flex;
    flex-wrap:wrap;
    gap:9px 22px;
    color:#515a52;
    font-size:.8rem;
    font-weight:600;
}


/* VISUAL */

.hero-visual{
    position:relative;
    min-height:520px;
}

.home-scene{
    position:absolute;
    left:0;
    right:62px;
    top:0;
    height:410px;
    border-radius:28px;
    overflow:hidden;
    background:#d5d0c6;
    box-shadow:var(--shadow);
}

.scene-wall{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#d9d4ca 0 60%,#c1bbaf 60%);
}

.scene-window{
    position:absolute;
    left:48px;
    top:48px;
    width:155px;
    height:180px;
    padding:6px;
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:1fr 1fr;
    gap:3px;
    background:#899793;
}

.scene-window div{
    background:linear-gradient(145deg,#dfe8e8,#9aaeb0);
}

.scene-console{
    position:absolute;
    left:28px;
    bottom:34px;
    width:235px;
    height:89px;
    background:#92795e;
}

.scene-lamp{
    position:absolute;
    top:28px;
    right:77px;
    width:3px;
    height:145px;
    background:#505751;
}

.scene-lamp:after{
    content:"";
    position:absolute;
    left:-31px;
    bottom:-1px;
    width:65px;
    height:35px;
    border-radius:50% 50% 15% 15%;
    background:#4c544e;
}

.scene-worker{
    position:absolute;
    right:105px;
    bottom:42px;
    width:100px;
    height:225px;
}

.scene-worker .head{
    position:absolute;
    top:0;
    left:29px;
    width:40px;
    height:40px;
    border-radius:50%;
    background:#b48769;
}

.scene-worker .body{
    position:absolute;
    top:43px;
    left:16px;
    width:69px;
    height:128px;
    border-radius:25px 25px 9px 9px;
    background:var(--forest);
}

.scene-worker .arm{
    position:absolute;
    top:64px;
    right:-16px;
    width:64px;
    height:18px;
    border-radius:10px;
    transform:rotate(-23deg);
    background:#b48769;
}

.scene-toolbox{
    position:absolute;
    right:35px;
    bottom:28px;
    width:95px;
    height:46px;
    border-radius:6px;
    background:#313a33;
}

.scene-badge{
    position:absolute;
    left:20px;
    bottom:18px;
    padding:9px 12px;
    display:flex;
    align-items:center;
    gap:8px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    font-size:.7rem;
    font-weight:700;
}

.scene-badge span{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#62a26a;
}

.floating-job{
    position:absolute;
    right:0;
    bottom:0;
    width:390px;
    padding:19px;
    border-radius:21px;
    background:var(--forest2);
    color:#fff;
    box-shadow:0 25px 70px rgba(12,41,32,.27);
}

.floating-top{
    padding-bottom:14px;
    display:flex;
    justify-content:space-between;
    gap:15px;
    border-bottom:1px solid rgba(255,255,255,.1);
}

.floating-top small,
.floating-pro small,
.floating-money small{
    display:block;
    color:#a8b9b0;
    font-size:.6rem;
    letter-spacing:.09em;
}

.floating-top strong{
    display:block;
    margin-top:5px;
    font-size:.86rem;
}

.floating-top>span{
    height:fit-content;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(223,242,92,.12);
    color:var(--lime);
    font-size:.58rem;
    font-weight:800;
}

.floating-pro{
    padding:15px 0;
    display:grid;
    grid-template-columns:40px 1fr auto;
    gap:11px;
    align-items:center;
}

.pro-avatar{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#dce5df;
    color:var(--forest2);
    font-size:.68rem;
    font-weight:800;
}

.floating-pro strong{
    display:block;
    margin-top:3px;
    font-size:.83rem;
}

.floating-pro p{
    margin:3px 0 0;
    color:#9dafA5;
    font-size:.68rem;
}

.floating-pro>b{color:var(--lime)}

.floating-money{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:7px;
}

.floating-money>div{
    padding:10px;
    border-radius:11px;
    background:rgba(255,255,255,.065);
}

.floating-money strong{
    display:block;
    margin-top:4px;
    font-size:.95rem;
}


/* TRUST */

.trust{
    border-bottom:1px solid var(--line);
}

.trust-shell{
    max-width:1280px;
    margin:auto;
    padding:0 30px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
}

.trust-shell>div{
    min-height:112px;
    padding:22px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid var(--line);
}

.trust-shell>div:first-child{
    border-left:1px solid var(--line);
}

.trust-shell strong{font-size:.88rem}

.trust-shell span{
    margin-top:5px;
    color:var(--muted);
    font-size:.73rem;
}


/* COMMON */

.section-shell{
    max-width:1180px;
    margin:auto;
}

.section-title{
    display:grid;
    grid-template-columns:58px 1fr;
    gap:18px;
    margin-bottom:44px;
}

.section-num{
    color:#929991;
    font-size:.68rem;
    font-weight:800;
}

.kicker{
    margin:0 0 11px;
    color:#747c75;
    font-size:.67rem;
    letter-spacing:.14em;
    font-weight:800;
}

.section-title h2,
.request-intro h2,
.how-title h2,
.professionals h2,
.final-cta h2{
    margin:0;
    font-size:clamp(2.8rem,5vw,5rem);
    line-height:.95;
    letter-spacing:-.055em;
}

.section-intro{
    color:var(--muted);
    line-height:1.6;
}


/* SERVICES */

.services{
    padding:105px 30px;
}

.service-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
}

.service-grid article{
    padding-bottom:22px;
    border-bottom:1px solid var(--line);
}

.service-image{
    height:205px;
    display:grid;
    place-items:center;
    border-radius:20px;
}

.service-image span{
    width:86px;
    height:86px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.72);
    font-size:2.6rem;
}

.electrical{background:#e1dbcf}
.plumbing{background:#d4dfdd}
.masonry{background:#d2cdc3}
.painting{background:#dfd9ce}
.carpentry{background:#cebca7}
.maintenance{background:#d5ddd1}

.service-grid h3{
    margin:17px 0 6px;
    font-size:.98rem;
}

.service-grid p{
    margin:0;
    color:var(--muted);
    font-size:.78rem;
    line-height:1.5;
}


/* REQUEST */

.request{
    padding:110px 30px;
    background:var(--cream2);
}

.request-shell{
    max-width:1180px;
    margin:auto;
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:64px;
    align-items:start;
}

.request-intro h2 em{
    display:block;
    margin-top:8px;
    color:#818982;
    font-style:normal;
}

.request-intro>p{
    color:var(--muted);
    line-height:1.65;
}

.human-box{
    margin-top:33px;
    padding-top:19px;
    display:flex;
    gap:13px;
    border-top:1px solid #d0d3cd;
}

.human-dot{
    width:10px;
    height:10px;
    margin-top:4px;
    border-radius:50%;
    background:#4d725c;
    box-shadow:0 0 0 6px rgba(77,114,92,.08);
}

.human-box strong,
.human-box small{
    display:block;
}

.human-box small{
    max-width:300px;
    margin-top:5px;
    color:var(--muted);
    font-size:.76rem;
    line-height:1.5;
}


/* WIZARD */

.wizard{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:26px;
    background:#fff;
    box-shadow:var(--shadow);
}

.wizard-head{
    padding:25px 27px 20px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:25px;
    border-bottom:1px solid var(--line);
}

.wizard-head small{
    color:#899089;
    font-size:.63rem;
    font-weight:800;
    letter-spacing:.1em;
}

.wizard-head h3{
    margin:5px 0 0;
    font-size:1.25rem;
}

.progress{
    width:185px;
    height:4px;
    overflow:hidden;
    border-radius:999px;
    background:#eceeea;
}

.progress span{
    width:25%;
    height:100%;
    display:block;
    background:var(--forest);
    transition:.3s;
}

#requestForm{padding:26px}

.wizard-page{
    display:none;
    min-height:395px;
}

.wizard-page.active{
    display:block;
    animation:fade .25s ease;
}

@keyframes fade{
    from{opacity:.2;transform:translateY(5px)}
    to{opacity:1;transform:none}
}

.wizard-help{
    margin:0 0 18px;
    color:var(--muted);
    font-size:.82rem;
}

.category-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}

.category-grid label{
    position:relative;
    min-height:84px;
    padding:12px;
    display:grid;
    grid-template-columns:41px 1fr auto;
    gap:10px;
    align-items:center;
    border:1px solid var(--line);
    border-radius:14px;
    cursor:pointer;
    transition:.18s;
}

.category-grid label:hover{
    transform:translateY(-1px);
    border-color:#9ca69e;
}

.category-grid label:has(input:checked){
    border-color:var(--forest);
    background:#f2f5f1;
    box-shadow:inset 0 0 0 1px var(--forest);
}

.category-grid input{
    position:absolute;
    opacity:0;
}

.category-icon{
    width:41px;
    height:41px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#edf0ec;
    color:var(--forest);
    font-size:1.15rem;
}

.category-grid b,
.category-grid small{
    display:block;
}

.category-grid b{font-size:.81rem}

.category-grid small{
    margin-top:3px;
    color:var(--muted);
    font-size:.66rem;
}

.arrow{color:#9da49e}

.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13px;
}

.form-grid label,
.description-field{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.form-grid label>span,
.description-field>span{
    font-size:.74rem;
    font-weight:700;
}

.form-grid input,
.form-grid select,
.description-field textarea{
    width:100%;
    padding:13px 14px;
    border:1px solid #d5d9d4;
    border-radius:11px;
    background:#fbfbf9;
    outline:none;
}

.form-grid input:focus,
.form-grid select:focus,
.description-field textarea:focus{
    border-color:#7c8e81;
    box-shadow:0 0 0 4px rgba(23,61,49,.06);
}

.form-grid .full{grid-column:1/-1}

.description-field textarea{
    min-height:180px;
    resize:vertical;
}

.note{
    margin-top:19px;
    padding:15px;
    display:flex;
    gap:11px;
    border-radius:13px;
    background:#eef1ed;
}

.note>span{
    flex:0 0 30px;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--forest);
    color:#fff;
    font-size:.72rem;
}

.note strong{font-size:.77rem}

.note p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:.72rem;
}

.tags{
    margin-top:15px;
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    align-items:center;
}

.tags span{
    color:var(--muted);
    font-size:.68rem;
}

.tags b{
    padding:5px 8px;
    border-radius:999px;
    background:#edf0ec;
    font-size:.65rem;
}

.privacy{
    margin-top:18px;
    display:flex;
    align-items:flex-start;
    gap:8px;
    color:var(--muted);
    font-size:.72rem;
}

.ready{
    margin-top:18px;
    padding:14px;
    display:flex;
    gap:11px;
    border-radius:13px;
    background:#eff5ea;
}

.ready>span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--forest);
    color:var(--lime);
}

.ready strong{font-size:.77rem}

.ready p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:.69rem;
}

.wizard-actions{
    margin-top:20px;
    padding-top:18px;
    display:flex;
    justify-content:space-between;
    gap:10px;
    border-top:1px solid var(--line);
}

.wizard-actions button{
    padding:12px 17px;
    border:0;
    border-radius:999px;
    font-size:.76rem;
    font-weight:800;
    cursor:pointer;
}

.back{
    background:transparent;
    color:var(--muted);
}

.next,
.submit{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:22px;
    background:var(--ink);
    color:#fff;
}

.submit{
    display:none;
    background:var(--forest);
}


/* HOW */

.how{
    padding:110px 30px;
    background:var(--forest2);
    color:#fff;
}

.how-title{
    display:grid;
    grid-template-columns:1fr .42fr;
    gap:60px;
    align-items:end;
}

.light{color:#a8bbb0!important}

.how-title>p{
    color:#a8bbb0;
    line-height:1.6;
}

.how-grid{
    margin-top:53px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid rgba(255,255,255,.13);
}

.how-grid article{
    min-height:260px;
    padding:23px 25px 23px 0;
    border-right:1px solid rgba(255,255,255,.1);
}

.how-grid article:not(:first-child){
    padding-left:25px;
}

.how-grid>article>span{
    color:#82968b;
    font-size:.66rem;
}

.how-grid strong{
    display:block;
    margin-top:110px;
    font-size:.93rem;
}

.how-grid p{
    margin:6px 0 0;
    color:#a9bbb1;
    font-size:.75rem;
}


/* PROFESSIONAL */

.professionals{
    padding:110px 30px;
}

.professional-shell{
    max-width:1180px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr .9fr;
    gap:80px;
    align-items:center;
}

.professionals h2 em{
    display:block;
    margin-top:8px;
    color:#858e86;
    font-style:normal;
}

.pro-copy{
    max-width:510px;
    color:var(--muted);
    line-height:1.65;
}

.pro-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}

.pro-grid>div{
    min-height:150px;
    padding:18px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    border:1px solid var(--line);
    border-radius:17px;
    background:#fff;
}

.pro-grid strong{font-size:1.9rem}

.pro-grid span{
    color:var(--muted);
    font-size:.74rem;
}

.pro-highlight{
    background:var(--lime)!important;
    border-color:var(--lime)!important;
}


/* CTA */

.final-cta{
    max-width:1180px;
    margin:25px auto 100px;
    padding:43px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    border-radius:25px;
    background:#dfe5dc;
}

.final-cta>a{
    padding:14px 18px;
    display:flex;
    align-items:center;
    gap:25px;
    border-radius:999px;
    background:var(--forest);
    color:#fff;
    text-decoration:none;
    font-size:.78rem;
    font-weight:800;
}


/* INTERNAL APP */

.panel{
    max-width:1160px;
    margin:25px auto;
    padding:25px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
}

.narrow{
    max-width:480px;
    margin:60px auto;
}

.panel label{
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-bottom:13px;
    font-weight:600;
}

.panel input,
.panel select,
.panel textarea{
    padding:13px;
    border:1px solid var(--line);
    border-radius:10px;
}

.primary,
.button{
    display:inline-block;
    padding:12px 17px;
    border:0;
    border-radius:999px;
    background:var(--forest);
    color:#fff;
    text-decoration:none;
    font-weight:700;
    cursor:pointer;
}

.button{
    background:#e9ede8;
    color:var(--ink);
}

.danger{
    background:#f3dedd!important;
    color:#7b2925!important;
}

.table-wrap{overflow:auto}

table{
    width:100%;
    border-collapse:collapse;
}

th,td{
    padding:12px;
    text-align:left;
    vertical-align:top;
    border-bottom:1px solid var(--line);
}

th{
    color:var(--muted);
    font-size:.76rem;
}

.status{
    padding:5px 8px;
    display:inline-block;
    border-radius:999px;
    background:#edf1ed;
    font-size:.68rem;
    font-weight:700;
}

.stats{
    max-width:1160px;
    margin:20px auto;
    display:flex;
    gap:12px;
}

.stats>div{
    padding:14px 18px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.stats b{
    display:block;
    font-size:1.4rem;
}

.stats span{
    color:var(--muted);
    font-size:.75rem;
}

.two-col{
    max-width:1160px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.payment-row{
    padding:10px 0;
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    border-bottom:1px solid var(--line);
}

.job-card{
    padding:15px 0;
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-bottom:1px solid var(--line);
}

.pricebox{
    padding:14px;
    display:flex;
    gap:20px;
    border-radius:12px;
    background:#f0f3ef;
}

.alert{
    margin-top:15px;
    padding:13px;
    border-radius:11px;
}

.alert.success{
    background:#e6f2e0;
    color:#25502e;
}

.alert.error{
    background:#f3dddd;
    color:#772925;
}


/* FOOTER */

.footer{
    padding:48px 30px 18px;
    background:#0a2119;
    color:#fff;
}

.footer-shell{
    max-width:1180px;
    margin:auto;
    display:flex;
    justify-content:space-between;
    gap:30px;
}

.footer-mark{
    background:var(--lime);
    color:var(--forest2);
}

.footer .brand-copy small{color:#8da096}

.footer-shell p{
    max-width:380px;
    color:#9bada3;
    font-size:.78rem;
}

.footer-links{
    display:flex;
    flex-direction:column;
    gap:9px;
}

.footer-links a{
    color:#d1dcd5;
    text-decoration:none;
    font-size:.78rem;
}

.footer-bottom{
    max-width:1180px;
    margin:35px auto 0;
    padding-top:16px;
    display:flex;
    justify-content:space-between;
    border-top:1px solid rgba(255,255,255,.1);
    color:#7d9186;
    font-size:.68rem;
}


/* RESPONSIVE */

@media(max-width:980px){

    .hero-shell,
    .request-shell,
    .professional-shell,
    .how-title{
        grid-template-columns:1fr;
    }

    .hero-visual{min-height:560px}

    .trust-shell{
        grid-template-columns:1fr 1fr;
    }

    .service-grid{
        grid-template-columns:1fr 1fr;
    }

    .how-grid{
        grid-template-columns:1fr 1fr;
    }

}


@media(max-width:720px){

    .header-shell{
        height:70px;
        padding:0 17px;
    }

    .menu-toggle{display:block}

    .main-nav{
        display:none;
        position:absolute;
        left:0;
        right:0;
        top:70px;
        padding:20px;
        flex-direction:column;
        align-items:stretch;
        background:var(--cream);
        border-bottom:1px solid var(--line);
    }

    .main-nav.open{display:flex}

    .hero-shell{
        padding:55px 18px 65px;
    }

    .hero h1{
        font-size:3.45rem;
    }

    .hero-actions{
        align-items:flex-start;
        flex-direction:column;
    }

    .hero-visual{
        min-height:570px;
    }

    .home-scene{
        right:0;
        height:390px;
    }

    .floating-job{
        left:20px;
        right:0;
        width:auto;
    }

    .floating-money{
        grid-template-columns:1fr;
    }

    .trust-shell{
        padding:0 18px;
        grid-template-columns:1fr;
    }

    .trust-shell>div{
        border-left:1px solid var(--line);
    }

    .services,
    .request,
    .how,
    .professionals{
        padding-left:18px;
        padding-right:18px;
    }

    .section-title{
        grid-template-columns:1fr;
    }

    .service-grid{
        grid-template-columns:1fr;
    }

    .request-shell{
        gap:42px;
    }

    .wizard-head{
        display:block;
    }

    .progress{
        width:100%;
        margin-top:15px;
    }

    #requestForm{
        padding:21px 17px;
    }

    .wizard-page{
        min-height:430px;
    }

    .category-grid{
        grid-template-columns:1fr;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .form-grid .full{
        grid-column:auto;
    }

    .how-grid{
        grid-template-columns:1fr;
    }

    .how-grid article,
    .how-grid article:not(:first-child){
        min-height:auto;
        padding:24px 0;
        border-right:0;
        border-top:1px solid rgba(255,255,255,.1);
    }

    .how-grid strong{
        margin-top:45px;
    }

    .pro-grid{
        grid-template-columns:1fr;
    }

    .final-cta{
        margin:20px 18px 70px;
        padding:30px 22px;
        flex-direction:column;
        align-items:flex-start;
    }

    .footer-shell,
    .footer-bottom{
        flex-direction:column;
    }

    .two-col{
        padding:0 18px;
        grid-template-columns:1fr;
    }

    .panel{
        margin-left:18px;
        margin-right:18px;
    }

    .stats{
        padding:0 18px;
        overflow:auto;
    }

}

/* Anti bot honeypot */
.hp-field {
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    opacity:0!important;
    pointer-events:none!important;
}

/* Footer legal / Freeadom */
.footer-credits {
    max-width:1180px;
    margin:12px auto 0;
    color:#91a299;
    font-size:.69rem;
}

.footer-credits a {
    color:#dff25c;
    text-decoration:none;
}

.report-actions {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}


/* ==============================================================
   ABITAPRONTO24 - AREA AMMINISTRATORE
============================================================== */

.login-page{
    min-height:calc(100vh - 150px);
    padding:80px 20px;
    display:grid;
    place-items:center;
    background:#ebe8de;
}

.login-box{
    width:100%;
    max-width:460px;
    padding:36px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    box-shadow:var(--shadow);
}

.login-brand{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:35px;
}

.login-brand>div{
    display:flex;
    flex-direction:column;
}

.login-brand small{
    margin-top:3px;
    color:var(--muted);
}

.login-box h1{
    margin:0;
    font-size:2.5rem;
    letter-spacing:-.05em;
}

.login-intro{
    color:var(--muted);
    margin-bottom:25px;
}

.login-box form{
    display:flex;
    flex-direction:column;
    gap:15px;
}

.login-box label{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.login-box label span{
    font-size:.78rem;
    font-weight:700;
}

.login-box input{
    width:100%;
    padding:14px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fafbf9;
}

.login-submit{
    margin-top:10px;
    width:100%;
    justify-content:center;
}


.admin-hero{
    max-width:1240px;
    margin:0 auto;
    padding:65px 30px 30px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
}

.admin-hero h1{
    margin:5px 0;
    font-size:clamp(2.7rem,5vw,5.2rem);
    line-height:.95;
    letter-spacing:-.06em;
}

.admin-hero p:last-child{
    color:var(--muted);
}

.admin-kicker{
    margin:0;
    color:#747c75;
    font-size:.68rem;
    letter-spacing:.15em;
    font-weight:800;
}

.admin-profile-chip{
    padding:12px 15px;
    display:flex;
    align-items:center;
    gap:11px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
}

.admin-profile-chip>span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:var(--forest);
    color:var(--lime);
    font-weight:900;
}

.admin-profile-chip small,
.admin-profile-chip strong{
    display:block;
}

.admin-profile-chip small{
    color:var(--muted);
    font-size:.61rem;
    letter-spacing:.1em;
}

.admin-profile-chip strong{
    margin-top:3px;
    font-size:.82rem;
}


.admin-flash{
    max-width:1180px;
    margin:0 auto 18px;
    padding:13px 16px;
    border-radius:12px;
}

.admin-flash.success{
    background:#e5f1df;
    color:#28502f;
}

.admin-flash.error{
    background:#f4dddd;
    color:#772925;
}


.admin-stats{
    max-width:1180px;
    margin:0 auto 28px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
}

.admin-stats article{
    min-height:140px;
    padding:20px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
}

.admin-stats span{
    color:var(--muted);
    font-size:.65rem;
    letter-spacing:.1em;
    font-weight:800;
}

.admin-stats strong{
    font-size:2.4rem;
    letter-spacing:-.05em;
}

.admin-stats small{
    color:var(--muted);
}


.admin-tabs{
    max-width:1180px;
    margin:0 auto 25px;
    padding:8px;
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
}

.admin-tabs a{
    padding:9px 14px;
    border-radius:999px;
    text-decoration:none;
    font-size:.76rem;
    font-weight:700;
}

.admin-tabs a:hover{
    background:#edf0eb;
}


.admin-card{
    max-width:1180px;
    margin:0 auto 26px;
    padding:27px;
    border:1px solid var(--line);
    border-radius:23px;
    background:#fff;
    box-shadow:0 15px 50px rgba(20,32,23,.04);
}

.admin-card-head{
    margin-bottom:22px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-end;
}

.admin-card-head h2{
    margin:5px 0 0;
    font-size:1.8rem;
    letter-spacing:-.04em;
}

.admin-help{
    color:var(--muted);
    font-size:.84rem;
    line-height:1.6;
}

.admin-button{
    padding:12px 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:999px;
    background:var(--forest);
    color:#fff;
    text-decoration:none;
    font-size:.75rem;
    font-weight:800;
    cursor:pointer;
}

.admin-button.secondary{
    background:#e9ede8;
    color:var(--ink);
}

.small-button{
    align-self:flex-start;
}


.admin-table-wrap{
    width:100%;
    overflow:auto;
}

.admin-table{
    min-width:1100px;
    width:100%;
    border-collapse:collapse;
}

.admin-table th{
    padding:10px;
    color:#7a827b;
    font-size:.62rem;
    letter-spacing:.07em;
    text-transform:uppercase;
    border-bottom:1px solid var(--line);
}

.admin-table td{
    padding:13px 10px;
    font-size:.76rem;
    vertical-align:top;
    border-bottom:1px solid #eceee9;
}

.admin-table td strong,
.admin-table td small{
    display:block;
}

.admin-table td small{
    margin-top:3px;
    color:var(--muted);
}

.request-description{
    max-width:220px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.admin-badge{
    width:fit-content;
    margin-top:5px!important;
    padding:3px 6px;
    border-radius:999px;
    font-size:.55rem!important;
    font-weight:800;
}

.admin-badge.demo{
    background:#ecece7;
    color:#656b65!important;
}

.admin-badge.real{
    background:#e5f0df;
    color:#315638!important;
}

.request-status{
    display:inline-block;
    padding:5px 7px;
    border-radius:999px;
    background:#edf0ec;
    font-size:.63rem;
    font-weight:800;
}

.row-actions{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
}

.row-actions form{
    margin:0;
}

.mini-action{
    padding:6px 8px;
    display:inline-block;
    border:0;
    border-radius:8px;
    background:#edf0ec;
    color:var(--ink);
    text-decoration:none;
    font-size:.65rem;
    font-weight:800;
    cursor:pointer;
}

.mini-action.danger{
    background:#f3dddd!important;
    color:#792a26!important;
}

.empty-table{
    padding:30px!important;
    text-align:center!important;
    color:var(--muted);
}


.admin-grid{
    max-width:1180px;
    margin:0 auto 26px;
    display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:20px;
}

.admin-grid>.admin-card{
    width:100%;
    margin:0;
}

.admin-form{
    display:flex;
    flex-direction:column;
    gap:13px;
}

.admin-form label{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.admin-form label>span{
    font-size:.73rem;
    font-weight:700;
}

.admin-form label>small{
    color:var(--muted);
    font-size:.66rem;
}

.admin-form input,
.admin-form select,
.admin-form textarea{
    width:100%;
    padding:12px 13px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fbfbf9;
    outline:none;
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus{
    border-color:#7f9184;
    box-shadow:0 0 0 4px rgba(23,61,49,.06);
}


.customer-list{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.customer-item{
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
}

.customer-item summary{
    padding:13px;
    display:grid;
    grid-template-columns:42px 1fr auto;
    gap:11px;
    align-items:center;
    cursor:pointer;
    list-style:none;
}

.customer-item summary::-webkit-details-marker{
    display:none;
}

.customer-avatar{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#e7ece6;
    color:var(--forest);
    font-weight:900;
}

.customer-item summary strong,
.customer-item summary span{
    display:block;
}

.customer-item summary span{
    margin-top:3px;
    color:var(--muted);
    font-size:.68rem;
}

.customer-item summary>b{
    color:#6f776f;
    font-size:.67rem;
}

.customer-edit-form{
    padding:15px;
    border-top:1px solid var(--line);
    background:#fafbf9;
}

.empty-state{
    color:var(--muted);
}


.account-layout{
    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:50px;
}

.account-layout>div>p{
    color:var(--muted);
    line-height:1.6;
}

.admin-warning{
    padding:13px;
    border-radius:11px;
    background:#f5f0dc;
    color:#665d36!important;
    font-size:.77rem;
}


.notification-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.notification-grid article{
    padding:18px;
    display:flex;
    align-items:center;
    gap:13px;
    border:1px solid var(--line);
    border-radius:16px;
}

.notification-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:var(--forest);
    color:var(--lime);
    font-weight:900;
}

.notification-grid small,
.notification-grid strong,
.notification-grid span{
    display:block;
}

.notification-grid small{
    color:var(--muted);
    font-size:.6rem;
    letter-spacing:.08em;
}

.notification-grid strong{
    margin-top:4px;
    font-size:.85rem;
}

.notification-grid span{
    margin-top:4px;
    color:var(--muted);
    font-size:.67rem;
}

.config-path{
    margin-top:18px;
    padding:14px;
    border-radius:12px;
    background:#eef1ed;
    font-size:.78rem;
}

.config-path code{
    display:block;
    margin-top:5px;
}

.notification-actions{
    margin-top:16px;
}


.customer-hero{
    max-width:1100px;
    margin:0 auto;
    padding:65px 25px 30px;
}

.customer-hero h1{
    margin:5px 0;
    font-size:clamp(2.8rem,5vw,5rem);
    letter-spacing:-.055em;
}

.customer-hero p:last-child{
    color:var(--muted);
}

.customer-request-list{
    max-width:1100px;
    margin:0 auto;
    padding:0 25px 80px;
    display:flex;
    flex-direction:column;
    gap:15px;
}

.customer-request-card{
    padding:24px;
    border:1px solid var(--line);
    border-radius:20px;
    background:#fff;
}

.customer-request-top{
    display:flex;
    justify-content:space-between;
    gap:20px;
}

.customer-request-top>div>span{
    color:var(--muted);
    font-size:.63rem;
    letter-spacing:.08em;
}

.customer-request-top h2{
    margin:5px 0 0;
}

.customer-request-info{
    margin-top:20px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}

.customer-request-info>div,
.customer-prices>div{
    padding:12px;
    border-radius:12px;
    background:#f2f4f0;
}

.customer-request-info small,
.customer-request-info strong,
.customer-prices small,
.customer-prices strong{
    display:block;
}

.customer-request-info small,
.customer-prices small{
    color:var(--muted);
    font-size:.58rem;
    letter-spacing:.08em;
}

.customer-request-info strong,
.customer-prices strong{
    margin-top:4px;
    font-size:.8rem;
}

.customer-description{
    margin:20px 0;
    color:#555e57;
    line-height:1.6;
}

.customer-prices{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
}

.customer-actions{
    margin-top:18px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.empty-customer{
    padding:35px;
    border:1px solid var(--line);
    border-radius:20px;
    background:#fff;
}

.empty-customer p{
    color:var(--muted);
}


.footer-credits{
    max-width:1180px;
    margin:12px auto 0;
    color:#8da096;
    font-size:.68rem;
}

.footer-credits a{
    color:var(--lime);
    text-decoration:none;
}


@media(max-width:900px){

    .admin-stats{
        grid-template-columns:1fr 1fr;
        padding:0 18px;
    }

    .admin-grid,
    .account-layout{
        grid-template-columns:1fr;
    }

    .admin-grid,
    .admin-card,
    .admin-flash,
    .admin-tabs{
        margin-left:18px;
        margin-right:18px;
    }

    .admin-hero{
        padding-left:18px;
        padding-right:18px;
    }

}


@media(max-width:650px){

    .admin-hero{
        align-items:flex-start;
        flex-direction:column;
    }

    .admin-stats{
        grid-template-columns:1fr 1fr;
    }

    .admin-tabs{
        border-radius:18px;
    }

    .notification-grid,
    .customer-request-info,
    .customer-prices{
        grid-template-columns:1fr;
    }

    .login-box{
        padding:25px 20px;
    }

}

.account-security-note{
    margin-top:18px;
    padding:15px;
    border-radius:13px;
    background:#e9efE8;
}

.account-security-note strong,
.account-security-note span{
    display:block;
}

.account-security-note strong{
    font-size:.78rem;
}

.account-security-note span{
    margin-top:5px;
    color:#667168;
    font-size:.72rem;
    line-height:1.5;
}


.password-change-box{
    margin-top:8px;
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:14px;
    border:1px solid #d9dcd5;
    border-radius:15px;
    background:#f4f6f2;
}

.password-change-title{
    padding-bottom:13px;
    border-bottom:1px solid #d9dcd5;
}

.password-change-title strong,
.password-change-title span{
    display:block;
}

.password-change-title strong{
    font-size:.85rem;
}

.password-change-title span{
    margin-top:4px;
    color:#6d756e;
    font-size:.7rem;
}



/* ==========================================================
   ABITAPRONTO24 - NAVIGATION V2
========================================================== */

.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(248,246,239,.96);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(15,25,18,.075);
}

.header-shell{
    max-width:1280px;
    height:78px;
    margin:auto;
    padding:0 30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:17px;
}

.nav-public,
.nav-account{
    display:flex;
    align-items:center;
    gap:5px;
}

.nav-public a{
    padding:9px 11px;
    display:flex;
    align-items:center;
    gap:7px;
    border-radius:10px;
    color:#4b534c;
    text-decoration:none;
    font-size:.78rem;
    font-weight:700;
    transition:
        background .18s ease,
        color .18s ease,
        transform .18s ease;
}

.nav-public a:hover{
    background:#e9ede7;
    color:#173d31;
    transform:translateY(-1px);
}

.nav-icon{
    width:21px;
    height:21px;
    display:grid;
    place-items:center;
    border-radius:7px;
    background:#eef1ec;
    color:#526359;
    font-size:.68rem;
    font-weight:900;
}

.nav-divider{
    width:1px;
    height:28px;
    background:#d5d9d3;
    margin:0 5px;
}

.nav-login-link{
    padding:9px 12px;
    text-decoration:none;
    color:#4b534c;
    font-size:.78rem;
    font-weight:700;
}

.nav-main-action{
    padding:11px 15px!important;
    display:flex!important;
    align-items:center!important;
    gap:16px!important;
    border-radius:999px!important;
    background:#101510!important;
    color:#fff!important;
}

.admin-nav-pill{
    padding:6px 11px 6px 6px!important;
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    border:1px solid #d2d7d1!important;
    border-radius:13px!important;
    background:#fff!important;
    color:#182019!important;
    text-decoration:none!important;
    box-shadow:0 3px 15px rgba(15,30,20,.035);
}

.admin-nav-dot{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#173d31;
    color:#dff25c;
    font-size:.76rem;
    font-weight:900;
}

.admin-nav-pill>span:last-child{
    display:flex;
    flex-direction:column;
    line-height:1;
}

.admin-nav-pill small{
    color:#8a928c;
    font-size:.5rem;
    letter-spacing:.11em;
    font-weight:800;
}

.admin-nav-pill strong{
    margin-top:4px;
    font-size:.71rem;
}

.nav-exit{
    padding:9px 10px!important;
    color:#8b4b46!important;
    text-decoration:none;
    font-size:.72rem!important;
    font-weight:800!important;
}

.nav-exit:hover{
    color:#702f2b!important;
}


/* Barra sessione amministrativa */

.admin-session-warning{
    position:relative;
    z-index:50;
    background:#163d31;
    color:#fff;
}

.admin-session-warning>div{
    max-width:1280px;
    min-height:34px;
    margin:auto;
    padding:7px 30px;
    display:flex;
    align-items:center;
    gap:9px;
    font-size:.67rem;
}

.admin-session-warning strong{
    color:#fff;
}

.admin-session-warning span:last-child{
    color:#b7c7bd;
}

.session-lock{
    color:#dff25c;
    font-size:.62rem;
}


/* Mobile */

@media(max-width:950px){

    .main-nav{
        display:none;
        position:absolute;
        top:78px;
        left:0;
        right:0;
        padding:17px;
        flex-direction:column;
        align-items:stretch;
        background:#f7f5ee;
        border-bottom:1px solid #d8dbd4;
        box-shadow:0 20px 40px rgba(20,30,22,.08);
    }

    .main-nav.open{
        display:flex;
    }

    .nav-public,
    .nav-account{
        flex-direction:column;
        align-items:stretch;
    }

    .nav-public a{
        padding:11px;
    }

    .nav-divider{
        width:100%;
        height:1px;
        margin:7px 0;
    }

    .admin-session-warning>div{
        padding-left:18px;
        padding-right:18px;
        flex-wrap:wrap;
    }

}



/* ==========================================================
   ABITAPRONTO24 - NAVIGATION V2
========================================================== */

.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(248,246,239,.96);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(15,25,18,.075);
}

.header-shell{
    max-width:1280px;
    height:78px;
    margin:auto;
    padding:0 30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:17px;
}

.nav-public,
.nav-account{
    display:flex;
    align-items:center;
    gap:5px;
}

.nav-public a{
    padding:9px 11px;
    display:flex;
    align-items:center;
    gap:7px;
    border-radius:10px;
    color:#4b534c;
    text-decoration:none;
    font-size:.78rem;
    font-weight:700;
    transition:
        background .18s ease,
        color .18s ease,
        transform .18s ease;
}

.nav-public a:hover{
    background:#e9ede7;
    color:#173d31;
    transform:translateY(-1px);
}

.nav-icon{
    width:21px;
    height:21px;
    display:grid;
    place-items:center;
    border-radius:7px;
    background:#eef1ec;
    color:#526359;
    font-size:.68rem;
    font-weight:900;
}

.nav-divider{
    width:1px;
    height:28px;
    background:#d5d9d3;
    margin:0 5px;
}

.nav-login-link{
    padding:9px 12px;
    text-decoration:none;
    color:#4b534c;
    font-size:.78rem;
    font-weight:700;
}

.nav-main-action{
    padding:11px 15px!important;
    display:flex!important;
    align-items:center!important;
    gap:16px!important;
    border-radius:999px!important;
    background:#101510!important;
    color:#fff!important;
}

.admin-nav-pill{
    padding:6px 11px 6px 6px!important;
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    border:1px solid #d2d7d1!important;
    border-radius:13px!important;
    background:#fff!important;
    color:#182019!important;
    text-decoration:none!important;
    box-shadow:0 3px 15px rgba(15,30,20,.035);
}

.admin-nav-dot{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#173d31;
    color:#dff25c;
    font-size:.76rem;
    font-weight:900;
}

.admin-nav-pill>span:last-child{
    display:flex;
    flex-direction:column;
    line-height:1;
}

.admin-nav-pill small{
    color:#8a928c;
    font-size:.5rem;
    letter-spacing:.11em;
    font-weight:800;
}

.admin-nav-pill strong{
    margin-top:4px;
    font-size:.71rem;
}

.nav-exit{
    padding:9px 10px!important;
    color:#8b4b46!important;
    text-decoration:none;
    font-size:.72rem!important;
    font-weight:800!important;
}

.nav-exit:hover{
    color:#702f2b!important;
}


/* Barra sessione amministrativa */

.admin-session-warning{
    position:relative;
    z-index:50;
    background:#163d31;
    color:#fff;
}

.admin-session-warning>div{
    max-width:1280px;
    min-height:34px;
    margin:auto;
    padding:7px 30px;
    display:flex;
    align-items:center;
    gap:9px;
    font-size:.67rem;
}

.admin-session-warning strong{
    color:#fff;
}

.admin-session-warning span:last-child{
    color:#b7c7bd;
}

.session-lock{
    color:#dff25c;
    font-size:.62rem;
}


/* Mobile */

@media(max-width:950px){

    .main-nav{
        display:none;
        position:absolute;
        top:78px;
        left:0;
        right:0;
        padding:17px;
        flex-direction:column;
        align-items:stretch;
        background:#f7f5ee;
        border-bottom:1px solid #d8dbd4;
        box-shadow:0 20px 40px rgba(20,30,22,.08);
    }

    .main-nav.open{
        display:flex;
    }

    .nav-public,
    .nav-account{
        flex-direction:column;
        align-items:stretch;
    }

    .nav-public a{
        padding:11px;
    }

    .nav-divider{
        width:100%;
        height:1px;
        margin:7px 0;
    }

    .admin-session-warning>div{
        padding-left:18px;
        padding-right:18px;
        flex-wrap:wrap;
    }

}



/* ==================================================================
   ABITAPRONTO24_UI_V2
   Restyling coordinato:
   - amministratore
   - operatore
   - cliente
   - professionista
   - wizard richiesta
   - login
   ================================================================== */


/* ------------------------------------------------------------------
   DESIGN TOKENS V2
   ------------------------------------------------------------------ */

:root{
    --ap-bg:#f4f5f1;
    --ap-surface:#ffffff;
    --ap-surface-soft:#f8f9f6;
    --ap-ink:#16201b;
    --ap-muted:#68736c;
    --ap-border:#dfe4de;

    --ap-green:#173d31;
    --ap-green-dark:#0d2d24;
    --ap-green-soft:#e8f0eb;

    --ap-accent:#dff25c;

    --ap-blue:#315f86;
    --ap-blue-bg:#eaf2f8;

    --ap-orange:#91641c;
    --ap-orange-bg:#fff3d9;

    --ap-red:#8d3a34;
    --ap-red-bg:#fae8e6;

    --ap-purple:#685486;
    --ap-purple-bg:#f0ebf7;

    --ap-radius-sm:12px;
    --ap-radius:18px;
    --ap-radius-lg:26px;

    --ap-shadow-sm:
        0 1px 2px rgba(18,31,23,.04),
        0 8px 25px rgba(18,31,23,.045);

    --ap-shadow:
        0 18px 55px rgba(16,39,29,.09);
}


/* ------------------------------------------------------------------
   BASE APP
   ------------------------------------------------------------------ */

body{
    background:
        radial-gradient(
            circle at 85% 0,
            rgba(23,61,49,.055),
            transparent 30rem
        ),
        var(--ap-bg);
}

main{
    min-height:calc(100vh - 76px);
}

body.ap-internal main{
    overflow:visible;
    padding-bottom:60px;
}

body.ap-internal{
    background:#f3f5f2;
}


/* ------------------------------------------------------------------
   HEADER
   ------------------------------------------------------------------ */

.site-header{
    box-shadow:
        0 1px 0 rgba(16,21,16,.04);
}

body.ap-internal .site-header{
    background:rgba(255,255,255,.94);
}

body.ap-internal .header-shell{
    max-width:1440px;
}

.admin-nav-pill{
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.admin-nav-pill:hover{
    transform:translateY(-1px);
}


/* ------------------------------------------------------------------
   ACCESSIBILITA / FOCUS
   ------------------------------------------------------------------ */

button,
a,
input,
select,
textarea{
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease,
        transform .18s ease,
        opacity .18s ease;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:3px solid rgba(23,61,49,.17);
    outline-offset:2px;
}


/* ------------------------------------------------------------------
   WIZARD CLIENTE
   ------------------------------------------------------------------ */

.request{
    position:relative;
    overflow:hidden;
}

.request:before{
    content:"";
    position:absolute;
    width:520px;
    height:520px;
    right:-260px;
    top:-170px;
    border-radius:50%;
    background:rgba(23,61,49,.045);
    pointer-events:none;
}

.request-shell{
    position:relative;
    max-width:1240px;
    grid-template-columns:.66fr 1.34fr;
    gap:72px;
}

.request-intro{
    position:sticky;
    top:112px;
}

.request-intro h2{
    font-size:clamp(2.8rem,4.4vw,4.9rem);
}

.human-box{
    padding:18px;
    border:1px solid rgba(23,61,49,.09);
    border-radius:18px;
    background:rgba(255,255,255,.48);
}

.wizard{
    border:0;
    border-radius:30px;
    box-shadow:
        0 25px 70px rgba(16,39,29,.12),
        0 0 0 1px rgba(23,61,49,.06);
}

.wizard-head{
    padding:28px 30px 24px;
    background:
        linear-gradient(
            135deg,
            #fbfcfa,
            #f4f7f3
        );
}

.wizard-head small{
    color:var(--ap-green);
    font-size:.66rem;
    letter-spacing:.14em;
}

.wizard-head h3{
    margin-top:7px;
    font-size:1.45rem;
    letter-spacing:-.025em;
}

.progress{
    width:210px;
    height:7px;
    background:#e5e9e4;
}

.progress span{
    border-radius:999px;
    background:
        linear-gradient(
            90deg,
            var(--ap-green),
            #4d765e
        );
}

#requestForm{
    padding:30px;
}

.wizard-page{
    min-height:410px;
}

.wizard-help{
    max-width:650px;
    margin-bottom:23px;
    font-size:.86rem;
    line-height:1.55;
}

.category-grid{
    gap:12px;
}

.category-grid label{
    min-height:92px;
    padding:15px;
    border-color:#e0e5df;
    border-radius:17px;
    background:#fff;
}

.category-grid label:hover{
    border-color:#98aa9e;
    transform:translateY(-2px);
    box-shadow:var(--ap-shadow-sm);
}

.category-grid label:has(input:checked){
    border-color:var(--ap-green);
    background:#edf4ef;
    box-shadow:
        inset 0 0 0 1px var(--ap-green),
        0 8px 25px rgba(23,61,49,.07);
}

.category-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    background:#eef2ee;
    font-size:1.25rem;
}

.category-grid label:has(input:checked) .category-icon{
    background:var(--ap-green);
    color:var(--ap-accent);
}

.category-grid b{
    font-size:.88rem;
}

.category-grid small{
    margin-top:5px;
    font-size:.7rem;
}

.form-grid{
    gap:16px;
}

.form-grid label,
.description-field{
    gap:8px;
}

.form-grid label>span,
.description-field>span{
    color:#29342d;
    font-size:.77rem;
}

.form-grid input,
.form-grid select,
.description-field textarea{
    min-height:51px;
    padding:14px 15px;
    border:1px solid #d9dfda;
    border-radius:13px;
    background:#fafbf9;
    color:var(--ap-ink);
}

.description-field textarea{
    min-height:190px;
    line-height:1.55;
}

.form-grid input:hover,
.form-grid select:hover,
.description-field textarea:hover{
    border-color:#bdc8c0;
}

.form-grid input:focus,
.form-grid select:focus,
.description-field textarea:focus{
    background:#fff;
    border-color:var(--ap-green);
    box-shadow:
        0 0 0 4px rgba(23,61,49,.08);
}

.note,
.ready{
    padding:17px;
    border-radius:16px;
}

.privacy{
    padding:13px 14px;
    border-radius:12px;
    background:#fafbf9;
}

.wizard-actions{
    margin-top:25px;
    padding-top:22px;
}

.wizard-actions button{
    min-height:47px;
    padding:13px 20px;
}

.next,
.submit{
    min-width:155px;
    justify-content:center;
    box-shadow:
        0 8px 22px rgba(16,39,29,.13);
}

.next:hover,
.submit:hover{
    transform:translateY(-1px);
}


/* ------------------------------------------------------------------
   LOGIN
   ------------------------------------------------------------------ */

.login-page{
    min-height:calc(100vh - 76px);
    padding:75px 20px;
    background:
        radial-gradient(
            circle at 20% 20%,
            rgba(223,242,92,.14),
            transparent 24rem
        ),
        linear-gradient(
            135deg,
            #eef1ec,
            #e5eae5
        );
}

.login-box{
    max-width:500px;
    padding:42px;
    border:0;
    border-radius:30px;
    box-shadow:
        0 28px 80px rgba(12,41,32,.15);
}

.login-box input{
    min-height:52px;
    border-radius:13px;
    background:#fafbf9;
}

.login-submit{
    width:100%;
    min-height:51px;
    margin-top:6px;
    text-align:center;
}


/* ------------------------------------------------------------------
   COMPONENTI INTERNI GENERALI
   ------------------------------------------------------------------ */

.panel{
    max-width:1240px;
    margin:24px auto;
    padding:28px;
    border:1px solid var(--ap-border);
    border-radius:22px;
    box-shadow:var(--ap-shadow-sm);
}

.panel h1,
.panel h2,
.panel h3{
    color:var(--ap-ink);
}

.panel h2{
    margin-top:0;
    letter-spacing:-.025em;
}

.panel input,
.panel select,
.panel textarea{
    min-height:48px;
    padding:13px 14px;
    border-color:#d8dfda;
    border-radius:12px;
    background:#fafbf9;
}

.panel textarea{
    min-height:115px;
}

.panel input:focus,
.panel select:focus,
.panel textarea:focus{
    outline:none;
    background:#fff;
    border-color:var(--ap-green);
    box-shadow:
        0 0 0 4px rgba(23,61,49,.08);
}

.primary,
.button,
.admin-button{
    min-height:42px;
    padding:11px 17px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.01em;
}

.primary:hover,
.admin-button:not(.secondary):hover{
    transform:translateY(-1px);
    box-shadow:
        0 8px 20px rgba(23,61,49,.14);
}

.button{
    border:1px solid #dfe4df;
    background:#f4f6f3;
}

.button:hover{
    background:#e9eee9;
}

.danger{
    border:1px solid #efd0cd!important;
}


/* ------------------------------------------------------------------
   STATUS BADGES
   classi assegnate da app.js
   ------------------------------------------------------------------ */

.status,
.request-status,
.ap-status{
    white-space:nowrap;
    padding:7px 10px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    border-radius:999px;
    font-size:.67rem;
    font-weight:850;
    letter-spacing:.035em;
    line-height:1;
}

.status:before,
.request-status:before,
.ap-status:before{
    content:"";
    width:6px;
    height:6px;
    border-radius:50%;
    background:currentColor;
}

.ap-status-new{
    color:#315f86!important;
    background:#eaf2f8!important;
}

.ap-status-assigning{
    color:#805d1c!important;
    background:#fff2d8!important;
}

.ap-status-quoted{
    color:#685486!important;
    background:#f1ebf8!important;
}

.ap-status-confirmed{
    color:#245d43!important;
    background:#e4f2e9!important;
}

.ap-status-awaiting-balance{
    color:#8b641e!important;
    background:#fff1d5!important;
}

.ap-status-completed{
    color:#395c45!important;
    background:#e3eee6!important;
}

.ap-status-cancelled{
    color:#8d3a34!important;
    background:#fae8e6!important;
}

.ap-status-disputed{
    color:#843b61!important;
    background:#f8e8f0!important;
}


/* ------------------------------------------------------------------
   ADMIN HERO
   ------------------------------------------------------------------ */

.admin-hero{
    max-width:1400px;
    margin:36px auto 0;
    padding:35px 38px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    border-radius:28px;
    color:#fff;
    background:
        radial-gradient(
            circle at 90% 20%,
            rgba(223,242,92,.18),
            transparent 18rem
        ),
        linear-gradient(
            135deg,
            #0b2b22,
            #194535
        );
    box-shadow:
        0 22px 55px rgba(12,41,32,.15);
}

.admin-hero h1{
    margin:5px 0 8px;
    color:#fff;
    font-size:clamp(2rem,4vw,3.5rem);
    letter-spacing:-.05em;
}

.admin-hero>div>p:last-child{
    margin-bottom:0;
    color:#bccdc4;
}

.admin-hero .admin-kicker{
    color:var(--ap-accent);
}

.admin-profile-chip{
    min-width:220px;
    padding:15px 17px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    background:rgba(255,255,255,.075);
    backdrop-filter:blur(8px);
}


/* ------------------------------------------------------------------
   ADMIN KPI
   ------------------------------------------------------------------ */

.admin-stats{
    max-width:1400px;
    margin:18px auto 0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:13px;
}

.admin-stats article{
    position:relative;
    overflow:hidden;
    min-height:128px;
    padding:21px 22px;
    border:1px solid var(--ap-border);
    border-radius:20px;
    background:#fff;
    box-shadow:var(--ap-shadow-sm);
}

.admin-stats article:after{
    content:"";
    position:absolute;
    width:70px;
    height:70px;
    right:-25px;
    top:-25px;
    border-radius:50%;
    background:rgba(23,61,49,.045);
}

.admin-stats span{
    display:block;
    color:var(--ap-muted);
    font-size:.65rem;
    font-weight:850;
    letter-spacing:.11em;
}

.admin-stats strong{
    display:block;
    margin-top:13px;
    color:var(--ap-green-dark);
    font-size:2.25rem;
    letter-spacing:-.05em;
}

.admin-stats small{
    display:block;
    margin-top:4px;
    color:#89918b;
    font-size:.7rem;
}


/* ------------------------------------------------------------------
   ADMIN NAV
   ------------------------------------------------------------------ */

.admin-tabs{
    max-width:1400px;
    margin:18px auto 22px;
    padding:7px;
    position:sticky;
    top:84px;
    z-index:30;
    display:flex;
    gap:4px;
    overflow:auto;
    border:1px solid var(--ap-border);
    border-radius:15px;
    background:rgba(255,255,255,.94);
    box-shadow:var(--ap-shadow-sm);
    backdrop-filter:blur(12px);
}

.admin-tabs a{
    flex:0 0 auto;
    padding:11px 15px;
    border-radius:10px;
    color:#5d6961;
    text-decoration:none;
    font-size:.75rem;
    font-weight:750;
}

.admin-tabs a:hover,
.admin-tabs a.ap-tab-active{
    color:#fff;
    background:var(--ap-green);
}


/* ------------------------------------------------------------------
   ADMIN CARDS
   ------------------------------------------------------------------ */

.admin-card{
    max-width:1400px;
    margin:0 auto 20px;
    padding:28px;
    border:1px solid var(--ap-border);
    border-radius:23px;
    background:#fff;
    box-shadow:var(--ap-shadow-sm);
    scroll-margin-top:155px;
}

.admin-card-head{
    margin-bottom:20px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
}

.admin-card-head h2{
    margin:4px 0 0;
    font-size:1.55rem;
    letter-spacing:-.035em;
}

.admin-kicker{
    color:var(--ap-green);
    font-size:.64rem;
    font-weight:850;
    letter-spacing:.13em;
}

.admin-head-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}


/* ------------------------------------------------------------------
   ADMIN TABLES
   ------------------------------------------------------------------ */

.admin-table-wrap,
.table-wrap{
    overflow:auto;
    border:1px solid #e3e7e3;
    border-radius:16px;
    background:#fff;
}

.admin-table,
.table-wrap table{
    min-width:900px;
}

.admin-table th,
.table-wrap th{
    padding:13px 14px;
    position:sticky;
    top:0;
    z-index:2;
    color:#758078;
    background:#f6f8f5;
    border-bottom:1px solid #dfe4df;
    font-size:.65rem;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.admin-table td,
.table-wrap td{
    padding:15px 14px;
    border-bottom:1px solid #edf0ed;
    vertical-align:middle;
    font-size:.82rem;
}

.admin-table tbody tr,
.table-wrap tbody tr{
    transition:background .15s ease;
}

.admin-table tbody tr:hover,
.table-wrap tbody tr:hover{
    background:#fafbf9;
}

.admin-table tbody tr:last-child td,
.table-wrap tbody tr:last-child td{
    border-bottom:0;
}


/* ------------------------------------------------------------------
   ADMIN FORMS
   ------------------------------------------------------------------ */

.admin-form{
    display:grid;
    gap:15px;
}

.admin-form label{
    display:flex;
    flex-direction:column;
    gap:7px;
    color:#354139;
    font-size:.75rem;
    font-weight:700;
}

.admin-form input,
.admin-form select,
.admin-form textarea{
    width:100%;
    min-height:49px;
    padding:13px 14px;
    border:1px solid #d9dfda;
    border-radius:12px;
    background:#fafbf9;
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus{
    outline:none;
    border-color:var(--ap-green);
    background:#fff;
    box-shadow:
        0 0 0 4px rgba(23,61,49,.08);
}

.account-layout,
.admin-grid{
    gap:18px;
}


/* ------------------------------------------------------------------
   OPERATOR
   ------------------------------------------------------------------ */

body.ap-operator main>h1,
body.ap-professional main>h1{
    max-width:1240px;
    margin:38px auto 4px;
    padding:0 4px;
    font-size:2.35rem;
    letter-spacing:-.05em;
}

body.ap-operator .stats{
    max-width:1240px;
    margin:18px auto;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

body.ap-operator .stats>div{
    min-width:0;
    padding:19px 20px;
    border-radius:18px;
    box-shadow:var(--ap-shadow-sm);
}

body.ap-operator .stats b{
    font-size:2rem;
    color:var(--ap-green-dark);
}

body.ap-operator .two-col{
    max-width:1240px;
    gap:18px;
}

body.ap-operator main>a:first-child{
    max-width:1240px;
    margin:28px auto 0;
    display:block;
    color:var(--ap-green);
    text-decoration:none;
    font-size:.8rem;
    font-weight:800;
}


/* ------------------------------------------------------------------
   CUSTOMER
   ------------------------------------------------------------------ */

.customer-hero{
    max-width:1240px;
    margin:38px auto 20px;
    padding:35px;
    border-radius:27px;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            #143a2e,
            #1f503d
        );
    box-shadow:var(--ap-shadow);
}

.customer-hero .admin-kicker{
    color:var(--ap-accent);
}

.customer-hero h1{
    margin:5px 0 10px;
    color:#fff;
    font-size:clamp(2.2rem,4vw,3.7rem);
    letter-spacing:-.055em;
}

.customer-hero>p:last-child{
    max-width:680px;
    margin-bottom:0;
    color:#c4d2ca;
    line-height:1.55;
}

.customer-request-list{
    max-width:1240px;
    margin:0 auto;
    display:grid;
    gap:15px;
}

.customer-request-card{
    padding:25px;
    border:1px solid var(--ap-border);
    border-radius:22px;
    background:#fff;
    box-shadow:var(--ap-shadow-sm);
}

.customer-request-top{
    padding-bottom:18px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    border-bottom:1px solid #edf0ed;
}

.customer-request-top>div>span{
    color:#7c887f;
    font-size:.64rem;
    font-weight:850;
    letter-spacing:.1em;
}

.customer-request-top h2{
    margin:6px 0 0;
    font-size:1.5rem;
    letter-spacing:-.035em;
}

.customer-request-info{
    margin-top:18px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}

.customer-request-info>div{
    padding:14px;
    border-radius:14px;
    background:#f6f8f5;
}

.customer-request-info small{
    display:block;
    color:#879189;
    font-size:.61rem;
    font-weight:800;
    letter-spacing:.08em;
}

.customer-request-info strong{
    display:block;
    margin-top:5px;
    font-size:.82rem;
}

.customer-description{
    margin:19px 0;
    color:#556159;
    line-height:1.62;
}

.customer-prices{
    padding:5px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    border-radius:17px;
    background:#eef2ee;
}

.customer-prices>div{
    padding:15px;
    border-radius:13px;
    background:#fff;
}

.customer-prices small{
    color:#849087;
    font-size:.61rem;
    font-weight:800;
    letter-spacing:.08em;
}

.customer-prices strong{
    display:block;
    margin-top:6px;
    color:var(--ap-green-dark);
    font-size:1.08rem;
}

.customer-actions{
    margin-top:18px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.empty-customer{
    padding:55px 30px;
    border:1px dashed #cbd4cd;
    border-radius:22px;
    background:rgba(255,255,255,.55);
    text-align:center;
}


/* ------------------------------------------------------------------
   PROFESSIONAL
   ------------------------------------------------------------------ */

body.ap-professional .panel{
    padding:8px 28px;
}

body.ap-professional .job-card{
    padding:22px 0;
    align-items:center;
}

.job-card h3{
    margin:8px 0 7px;
    font-size:1.15rem;
}

.job-card p{
    margin:5px 0;
    color:#657168;
    line-height:1.5;
}


/* ------------------------------------------------------------------
   PAYMENT ROW
   ------------------------------------------------------------------ */

.payment-row{
    padding:13px 0;
    grid-template-columns:1fr 1fr auto;
    gap:15px;
    align-items:center;
}


/* ------------------------------------------------------------------
   FLASH / ALERT
   ------------------------------------------------------------------ */

.alert,
.admin-flash,
.admin-warning{
    border-radius:14px;
}

.alert.success,
.admin-flash.success{
    border:1px solid #cde3d2;
}

.alert.error,
.admin-flash.error{
    border:1px solid #edcdca;
}


/* ------------------------------------------------------------------
   BUTTON DISABLED
   ------------------------------------------------------------------ */

button:disabled{
    cursor:not-allowed!important;
    opacity:.55;
    transform:none!important;
    box-shadow:none!important;
}


/* ------------------------------------------------------------------
   RESPONSIVE V2
   ------------------------------------------------------------------ */

@media(max-width:1200px){

    .admin-hero,
    .admin-stats,
    .admin-tabs,
    .admin-card,
    .customer-hero,
    .customer-request-list,
    body.ap-operator .stats,
    body.ap-operator main>h1,
    body.ap-professional main>h1{
        margin-left:22px;
        margin-right:22px;
    }

    .admin-stats{
        grid-template-columns:repeat(2,1fr);
    }

}


@media(max-width:900px){

    .request-intro{
        position:static;
    }

    .request-shell{
        grid-template-columns:1fr;
        gap:42px;
    }

    body.ap-operator .stats{
        grid-template-columns:1fr 1fr;
    }

    .customer-request-info{
        grid-template-columns:1fr;
    }

}


@media(max-width:720px){

    body.ap-internal main{
        padding-bottom:35px;
    }

    .admin-hero{
        margin:18px 14px 0;
        padding:27px 22px;
        align-items:flex-start;
        flex-direction:column;
    }

    .admin-profile-chip{
        width:100%;
    }

    .admin-stats{
        margin-left:14px;
        margin-right:14px;
        grid-template-columns:1fr 1fr;
        gap:9px;
    }

    .admin-stats article{
        min-height:112px;
        padding:17px;
    }

    .admin-stats strong{
        font-size:1.8rem;
    }

    .admin-tabs{
        top:76px;
        margin:12px 14px 16px;
    }

    .admin-card{
        margin-left:14px;
        margin-right:14px;
        padding:20px 16px;
    }

    .admin-card-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .request{
        padding-top:75px;
        padding-bottom:75px;
    }

    .wizard{
        border-radius:23px;
    }

    .wizard-head{
        padding:22px 20px;
    }

    #requestForm{
        padding:22px 18px;
    }

    .wizard-page{
        min-height:auto;
    }

    .category-grid label{
        min-height:82px;
    }

    .wizard-actions{
        position:sticky;
        bottom:0;
        margin-left:-18px;
        margin-right:-18px;
        margin-bottom:-22px;
        padding:14px 18px;
        border-top:1px solid #e1e5e1;
        background:rgba(255,255,255,.96);
        backdrop-filter:blur(10px);
    }

    .customer-hero{
        margin:18px 14px 13px;
        padding:26px 21px;
    }

    .customer-request-list{
        margin-left:14px;
        margin-right:14px;
    }

    .customer-request-card{
        padding:19px 16px;
    }

    .customer-request-top{
        align-items:flex-start;
        flex-direction:column;
    }

    .customer-prices{
        grid-template-columns:1fr;
    }

    .customer-actions .admin-button{
        width:100%;
    }

    body.ap-operator .stats{
        margin-left:14px;
        margin-right:14px;
        padding:0;
        grid-template-columns:1fr 1fr;
    }

    body.ap-operator main>h1,
    body.ap-professional main>h1{
        margin-left:18px;
        margin-right:18px;
    }

    .job-card{
        align-items:flex-start!important;
        flex-direction:column;
    }

    .job-card .primary{
        width:100%;
    }

    .login-box{
        padding:30px 22px;
        border-radius:23px;
    }

}


@media(max-width:430px){

    .admin-stats{
        grid-template-columns:1fr;
    }

    body.ap-operator .stats{
        grid-template-columns:1fr;
    }

    .wizard-actions button{
        min-width:0;
    }

    .next,
    .submit{
        flex:1;
    }

}


.category-grid label.ap-selected{
    border-color:var(--ap-green);
    background:#edf4ef;
    box-shadow:
        inset 0 0 0 1px var(--ap-green),
        0 8px 25px rgba(23,61,49,.07);
}

.category-grid label.ap-selected .category-icon{
    background:var(--ap-green);
    color:var(--ap-accent);
}



/* ==================================================================
   ABITAPRONTO24_UI_V3
   Filigrane contestuali / icone inline / cookie bar
   ================================================================== */


/* ------------------------------------------------------------------
   FILIGRANE GENERALI
   ------------------------------------------------------------------ */

.ap-watermark{
    position:relative;
    isolation:isolate;
}

.ap-watermark:before{
    content:"";
    position:absolute;
    z-index:-1;
    pointer-events:none;
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
    opacity:.035;
}


/* CASA / CLIENTE */

body.ap-customer main,
.request{
    position:relative;
}

body.ap-customer main:before,
.request:after{
    content:"";
    position:absolute;
    pointer-events:none;
    width:440px;
    height:440px;
    right:-90px;
    top:120px;
    opacity:.027;
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M42 137 150 47l108 90'/%3E%3Cpath d='M66 122v124h168V122'/%3E%3Cpath d='M123 246v-78h54v78'/%3E%3Cpath d='M95 153h38v38H95zM180 153h30v38h-30z'/%3E%3C/g%3E%3C/svg%3E");
}

.request:after{
    top:auto;
    bottom:80px;
    right:auto;
    left:-110px;
    width:370px;
    height:370px;
    opacity:.022;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m76 220 111-111'/%3E%3Cpath d='M175 55c24-13 53-9 73 11l-43 43 22 22 43-43c9 27 2 57-20 77-22 20-53 25-79 13L92 257l-49-49 79-79c-11-25-6-55 13-76 11-12 25-20 40-24z'/%3E%3C/g%3E%3C/svg%3E");
}


/* ADMIN */

body.ap-admin main{
    position:relative;
}

body.ap-admin main:before{
    content:"";
    position:fixed;
    pointer-events:none;
    width:520px;
    height:520px;
    right:-130px;
    bottom:-100px;
    opacity:.024;
    background-repeat:no-repeat;
    background-size:contain;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='7' stroke-linecap='round'%3E%3Crect x='48' y='56' width='204' height='188' rx='18'/%3E%3Cpath d='M78 201v-52M119 201v-89M160 201v-62M201 201V91'/%3E%3Cpath d='M78 100h31M78 121h20M119 76h31M160 104h31M201 70h20'/%3E%3C/g%3E%3C/svg%3E");
}

.admin-hero{
    position:relative;
    overflow:hidden;
}

.admin-hero:after{
    content:"";
    position:absolute;
    width:320px;
    height:320px;
    right:35px;
    top:-115px;
    opacity:.055;
    pointer-events:none;
    background-repeat:no-repeat;
    background-size:contain;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='8'%3E%3Ccircle cx='150' cy='150' r='90'/%3E%3Ccircle cx='150' cy='150' r='36'/%3E%3Cpath d='M150 26v42M150 232v42M26 150h42M232 150h42M63 63l30 30M207 207l30 30M237 63l-30 30M93 207l-30 30'/%3E%3C/g%3E%3C/svg%3E");
}


/* OPERATORE */

body.ap-operator main{
    position:relative;
}

body.ap-operator main:before{
    content:"";
    position:fixed;
    left:-100px;
    bottom:-80px;
    width:430px;
    height:430px;
    pointer-events:none;
    opacity:.022;
    background-repeat:no-repeat;
    background-size:contain;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='8' stroke-linecap='round'%3E%3Cpath d='M64 151a86 86 0 0 1 172 0'/%3E%3Crect x='42' y='139' width='37' height='78' rx='16'/%3E%3Crect x='221' y='139' width='37' height='78' rx='16'/%3E%3Cpath d='M239 217c0 30-26 45-63 45h-17'/%3E%3Ccircle cx='146' cy='262' r='11'/%3E%3C/g%3E%3C/svg%3E");
}


/* PROFESSIONISTA */

body.ap-professional main{
    position:relative;
}

body.ap-professional main:before{
    content:"";
    position:fixed;
    right:-110px;
    bottom:-120px;
    width:470px;
    height:470px;
    pointer-events:none;
    opacity:.024;
    background-repeat:no-repeat;
    background-size:contain;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m62 227 92-92'/%3E%3Cpath d='M178 45c22-8 47-3 64 14l-42 42 23 23 42-42c7 23 1 49-18 67-22 22-55 26-81 12l-88 88-35-35 88-88c-14-27-9-59 13-81 10-10 22-17 34-20z'/%3E%3C/g%3E%3C/svg%3E");
}


/* ------------------------------------------------------------------
   DECORAZIONE CARD
   ------------------------------------------------------------------ */

.admin-card,
.customer-request-card,
.panel,
.wizard{
    position:relative;
}

.admin-card:before,
.customer-request-card:before{
    content:"";
    position:absolute;
    width:52px;
    height:4px;
    left:24px;
    top:0;
    border-radius:0 0 10px 10px;
    background:linear-gradient(
        90deg,
        var(--ap-green),
        #76977f
    );
}


/* ------------------------------------------------------------------
   ICONE SVG INLINE GENERATE DA JS
   ------------------------------------------------------------------ */

.ap-inline-icon{
    width:18px;
    height:18px;
    flex:0 0 18px;
    display:inline-block;
    vertical-align:-3px;
}

.ap-inline-icon svg{
    width:100%;
    height:100%;
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.ap-icon-button{
    display:inline-flex!important;
    align-items:center!important;
    gap:8px!important;
}

.admin-tabs .ap-inline-icon{
    width:16px;
    height:16px;
    flex-basis:16px;
}

.category-grid .ap-inline-icon{
    width:23px;
    height:23px;
    flex-basis:23px;
}

.category-icon{
    font-size:0!important;
}

.category-icon .ap-inline-icon{
    width:23px;
    height:23px;
}

.ap-kpi-icon{
    width:34px;
    height:34px;
    margin-bottom:10px;
    display:grid;
    place-items:center;
    border-radius:11px;
    color:var(--ap-green);
    background:#edf3ef;
}

.ap-kpi-icon .ap-inline-icon{
    width:18px;
    height:18px;
}


/* ------------------------------------------------------------------
   COOKIE BAR
   ------------------------------------------------------------------ */

.ap-cookie-layer{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:99999;
    padding:16px;
    pointer-events:none;
}

.ap-cookie-bar{
    max-width:1180px;
    margin:0 auto;
    padding:18px 20px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:16px;
    align-items:center;
    pointer-events:auto;
    border:1px solid rgba(255,255,255,.09);
    border-radius:20px;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            rgba(10,38,30,.98),
            rgba(18,61,46,.98)
        );
    box-shadow:
        0 22px 70px rgba(0,0,0,.25);
    backdrop-filter:blur(18px);
    animation:
        apCookieIn .35s ease both;
}

@keyframes apCookieIn{
    from{
        opacity:0;
        transform:translateY(25px);
    }
    to{
        opacity:1;
        transform:none;
    }
}

.ap-cookie-symbol{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:15px;
    color:var(--ap-green-dark);
    background:var(--ap-accent);
}

.ap-cookie-symbol .ap-inline-icon{
    width:25px;
    height:25px;
}

.ap-cookie-copy strong{
    display:block;
    margin-bottom:5px;
    font-size:.91rem;
}

.ap-cookie-copy p{
    max-width:760px;
    margin:0;
    color:#becfc6;
    font-size:.75rem;
    line-height:1.55;
}

.ap-cookie-copy a{
    color:#eef7ac;
    text-decoration:underline;
    text-underline-offset:2px;
}

.ap-cookie-actions{
    display:flex;
    gap:8px;
    align-items:center;
}

.ap-cookie-button{
    min-height:43px;
    padding:11px 17px;
    border:0;
    border-radius:12px;
    cursor:pointer;
    color:#163d31;
    background:var(--ap-accent);
    font-size:.76rem;
    font-weight:850;
}

.ap-cookie-button:hover{
    transform:translateY(-1px);
}

.ap-cookie-info{
    padding:10px 12px;
    color:#d6e2dc;
    text-decoration:none;
    font-size:.72rem;
    font-weight:700;
}

.ap-cookie-info:hover{
    color:#fff;
}

.ap-cookie-layer.ap-hide{
    animation:
        apCookieOut .26s ease forwards;
}

@keyframes apCookieOut{
    to{
        opacity:0;
        transform:translateY(25px);
    }
}


/* ------------------------------------------------------------------
   PICCOLE FILIGRANE WIZARD
   ------------------------------------------------------------------ */

.wizard-page{
    position:relative;
}

.wizard-page:after{
    content:"";
    position:absolute;
    pointer-events:none;
    width:135px;
    height:135px;
    right:-20px;
    bottom:5px;
    opacity:.026;
    background-repeat:no-repeat;
    background-size:contain;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='7'%3E%3Ccircle cx='100' cy='100' r='65'/%3E%3Cpath d='M100 25v32M100 143v32M25 100h32M143 100h32M47 47l23 23M130 130l23 23M153 47l-23 23M70 130l-23 23'/%3E%3Ccircle cx='100' cy='100' r='23'/%3E%3C/g%3E%3C/svg%3E");
}


/* ------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------ */

@media(max-width:720px){

    body.ap-customer main:before,
    body.ap-admin main:before,
    body.ap-operator main:before,
    body.ap-professional main:before{
        width:280px;
        height:280px;
        opacity:.018;
    }

    .request:after{
        display:none;
    }

    .ap-cookie-layer{
        padding:10px;
    }

    .ap-cookie-bar{
        padding:16px;
        grid-template-columns:auto 1fr;
        border-radius:17px;
    }

    .ap-cookie-symbol{
        width:42px;
        height:42px;
    }

    .ap-cookie-actions{
        grid-column:1 / -1;
        width:100%;
    }

    .ap-cookie-button{
        flex:1;
    }

}


@media(max-width:460px){

    .ap-cookie-bar{
        grid-template-columns:1fr;
    }

    .ap-cookie-symbol{
        display:none;
    }

    .ap-cookie-actions{
        grid-column:auto;
        flex-direction:column-reverse;
        align-items:stretch;
    }

    .ap-cookie-info{
        text-align:center;
    }

}



/* ==================================================================
   ABITAPRONTO24_BACKGROUND_V4
   Background generale coordinato
   Filigrana edilizia / casa / manutenzione / impianti
   ================================================================== */


/* ------------------------------------------------------------------
   STRATO GENERALE
   ------------------------------------------------------------------ */

html{
    background:#f3f4ef;
}

body{
    position:relative;
    min-height:100vh;

    background:
        linear-gradient(
            rgba(247,248,244,.93),
            rgba(244,246,241,.93)
        ),
        #f4f5f1;
}


/*
 * Filigrana globale.
 *
 * Comprende:
 * - casa
 * - tetto
 * - muratura
 * - martello
 * - chiave
 * - elettrico
 * - idraulica
 * - linee tecniche
 */

body:before{

    content:"";

    position:fixed;

    inset:0;

    z-index:-2;

    pointer-events:none;

    background-repeat:repeat;

    background-size:760px 760px;

    background-position:center top;

    opacity:.115;

    filter:
        grayscale(1)
        contrast(.85);

    background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='760' height='760' viewBox='0 0 760 760'%3E%3Cg fill='none' stroke='%23173d31' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' opacity='.30'%3E%3C!-- CASA --%3E%3Cpath d='M70 210 190 110l120 100'/%3E%3Cpath d='M92 191v150h196V191'/%3E%3Cpath d='M158 341v-80h64v80'/%3E%3Cpath d='M112 226h42v42h-42zM231 226h35v42h-35z'/%3E%3C!-- MATTONI --%3E%3Cpath d='M420 110h180v105H420z'/%3E%3Cpath d='M420 145h180M420 180h180'/%3E%3Cpath d='M465 110v35M555 110v35M445 145v35M520 145v35M575 145v35M475 180v35M555 180v35'/%3E%3C!-- MARTELLO --%3E%3Cpath d='m465 330 89 89'/%3E%3Cpath d='m520 290 42 42-42 42-42-42z'/%3E%3Cpath d='m480 302 31-31 62 62-31 31'/%3E%3C!-- CHIAVE --%3E%3Cpath d='M145 520 250 415'/%3E%3Cpath d='M255 388c26-11 56-5 76 15l-48 48 27 27 48-48c9 29 1 61-21 82-24 23-59 28-88 13l-79 79-54-54 79-79c-15-29-10-64 13-88 13-13 29-21 47-25z'/%3E%3C!-- ELETTRICO --%3E%3Cpath d='m442 500 33-67-4 49h38l-58 78 12-55z'/%3E%3Ccircle cx='475' cy='500' r='80'/%3E%3C!-- GOCCIA --%3E%3Cpath d='M628 435s52 55 52 98a52 52 0 0 1-104 0c0-43 52-98 52-98z'/%3E%3C!-- LINEE TECNICHE --%3E%3Cpath d='M36 64h112M36 72h76M615 78h109M638 86h86M44 692h156M560 688h148' stroke-dasharray='7 12'/%3E%3Cpath d='M372 40v85M364 48h16M364 117h16M375 635v84M367 643h16M367 710h16' stroke-dasharray='5 10'/%3E%3C!-- PICCOLI SEGNI PLANIMETRICI --%3E%3Cpath d='M335 260h58v58h-58zM347 272h34v34h-34z'/%3E%3Cpath d='M610 310h62v62M610 310v62h62'/%3E%3Ccircle cx='370' cy='480' r='17'/%3E%3Cpath d='M353 480h34M370 463v34'/%3E%3C/g%3E%3C/svg%3E");
}


/* ------------------------------------------------------------------
   SFUMATURE GRANDI
   ------------------------------------------------------------------ */

body:after{

    content:"";

    position:fixed;

    inset:0;

    z-index:-1;

    pointer-events:none;

    background:

        radial-gradient(
            circle at 8% 15%,
            rgba(23,61,49,.075),
            transparent 28rem
        ),

        radial-gradient(
            circle at 92% 30%,
            rgba(123,145,128,.06),
            transparent 32rem
        ),

        radial-gradient(
            circle at 50% 85%,
            rgba(223,242,92,.045),
            transparent 30rem
        );
}


/* ------------------------------------------------------------------
   SEZIONI PUBBLICHE
   ------------------------------------------------------------------ */

.hero,
.services,
.request,
.professionals{
    background-color:
        rgba(245,247,242,.70);
}

.hero{
    backdrop-filter:
        blur(1px);
}

.services{
    background:
        rgba(247,248,244,.78);
}

.request{
    background:
        rgba(235,238,231,.84);
}

.professionals{
    background:
        rgba(248,249,246,.80);
}


/* ------------------------------------------------------------------
   HOW SECTION
   ------------------------------------------------------------------ */

.how{
    position:relative;
    overflow:hidden;
}

.how:after{

    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    opacity:.045;

    background-repeat:repeat;

    background-size:360px 360px;

    background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360' viewBox='0 0 360 360'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M45 135 110 80l65 55M58 125v80h104v-80M215 95h100M215 120h100M215 145h100M235 95v25M285 95v25M255 120v25'/%3E%3Cpath d='m85 280 70-70M210 240l55 55'/%3E%3Ccircle cx='270' cy='220' r='40'/%3E%3C/g%3E%3C/svg%3E");
}


/* ------------------------------------------------------------------
   CARD
   Manteniamo leggibilità sopra la filigrana.
   ------------------------------------------------------------------ */

.wizard,
.panel,
.admin-card,
.customer-request-card,
.login-box,
.final-cta,
.service-grid article,
.pro-grid>div{

    background-color:
        rgba(255,255,255,.94);

    backdrop-filter:
        blur(4px);
}


/* ------------------------------------------------------------------
   ADMIN / OPERATORE / CLIENTE / PROFESSIONISTA
   ------------------------------------------------------------------ */

body.ap-internal{

    background:
        linear-gradient(
            rgba(244,246,242,.89),
            rgba(242,245,240,.89)
        );
}


/*
 * Riduciamo le precedenti filigrane singole,
 * perché adesso esiste quella coordinata globale.
 */

body.ap-customer main:before,
body.ap-admin main:before,
body.ap-operator main:before,
body.ap-professional main:before{

    opacity:.012!important;
}


/*
 * La filigrana globale deve essere presente
 * anche nelle aree interne.
 */

body.ap-internal:before{

    opacity:.095;
}


/* ------------------------------------------------------------------
   ADMIN HERO
   ------------------------------------------------------------------ */

.admin-hero{

    background:

        linear-gradient(
            135deg,
            rgba(8,41,31,.97),
            rgba(24,73,54,.96)
        );
}


/* ------------------------------------------------------------------
   CUSTOMER HERO
   ------------------------------------------------------------------ */

.customer-hero{

    background:

        linear-gradient(
            135deg,
            rgba(15,53,41,.97),
            rgba(29,79,59,.96)
        );
}


/* ------------------------------------------------------------------
   LOGIN
   ------------------------------------------------------------------ */

.login-page{

    background-color:
        rgba(236,240,234,.74);

    background-image:

        radial-gradient(
            circle at 16% 18%,
            rgba(23,61,49,.07),
            transparent 26rem
        ),

        radial-gradient(
            circle at 87% 82%,
            rgba(223,242,92,.07),
            transparent 24rem
        );
}


/* ------------------------------------------------------------------
   FOOTER
   ------------------------------------------------------------------ */

.footer{
    position:relative;
    overflow:hidden;
}

.footer:before{

    content:"";

    position:absolute;

    width:620px;
    height:620px;

    right:-170px;
    bottom:-300px;

    pointer-events:none;

    opacity:.035;

    background-repeat:no-repeat;
    background-size:contain;

    background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='5'%3E%3Cpath d='M40 180 200 55l160 125M76 153v196h248V153M160 349v-110h80v110'/%3E%3Cpath d='M93 210h55v55H93zM260 210h48v55h-48z'/%3E%3C/g%3E%3C/svg%3E");
}


/* ------------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------------ */

@media(max-width:720px){

    body:before{

        background-size:
            520px 520px;

        opacity:.085;
    }

    body:after{

        background:

            radial-gradient(
                circle at 10% 10%,
                rgba(23,61,49,.05),
                transparent 20rem
            ),

            radial-gradient(
                circle at 90% 70%,
                rgba(23,61,49,.035),
                transparent 22rem
            );
    }

    .hero,
    .services,
    .request,
    .professionals{

        background-color:
            rgba(247,248,244,.83);
    }

}


@media(max-width:430px){

    body:before{

        background-size:
            440px 440px;

        opacity:.075;
    }

}



/* ==================================================================
   ABITAPRONTO24_BACKGROUND_V4_VISIBILITY_FIX
   ================================================================== */


/* Base meno coprente */
body{
    background:
        linear-gradient(
            rgba(247,248,244,.78),
            rgba(244,246,241,.78)
        ),
        #f4f5f1!important;
}


/* Filigrana globale più visibile */
body:before{

    opacity:.24!important;

    background-size:
        680px 680px!important;

    filter:
        grayscale(1)
        contrast(1.05)!important;
}


/* Aree pubbliche meno opache */
.hero,
.services,
.request,
.professionals{

    background-color:
        rgba(247,248,244,.72)!important;
}


/* Request leggermente più scura per stacco */
.request{

    background:
        rgba(234,238,231,.76)!important;
}


/* Card restano leggibili */
.wizard,
.panel,
.admin-card,
.customer-request-card,
.login-box,
.final-cta,
.pro-grid>div{

    background-color:
        rgba(255,255,255,.93)!important;
}


/* Service card un po' più trasparenti */
.service-grid article{

    background-color:
        rgba(255,255,255,.84)!important;
}


/* Filigrana interna più visibile */
body.ap-internal:before{

    opacity:.20!important;
}


/* Le vecchie filigrane contestuali rimangono ma più leggibili */
body.ap-customer main:before,
body.ap-admin main:before,
body.ap-operator main:before,
body.ap-professional main:before{

    opacity:.045!important;
}


/* Seconda filigrana decorativa più evidente nella richiesta */
.request:after{

    opacity:.08!important;

    width:430px!important;
    height:430px!important;
}


/* Hero admin */
.admin-hero:after{

    opacity:.10!important;
}


/* Footer */
.footer:before{

    opacity:.07!important;
}


/* Mobile */
@media(max-width:720px){

    body:before{

        opacity:.18!important;

        background-size:
            520px 520px!important;
    }

}


@media(max-width:430px){

    body:before{

        opacity:.16!important;

        background-size:
            430px 430px!important;
    }

}



/* ==================================================================
   ABITAPRONTO24_BACKGROUND_V5_FINAL
   Background tecnico edilizia / ristrutturazione
   ================================================================== */


/* ------------------------------------------------------------------
   DISABILITA LE VECCHIE FILIGRANE GLOBALI
   ------------------------------------------------------------------ */

body:before,
body:after{
    display:none!important;
}


/* ------------------------------------------------------------------
   BACKGROUND GENERALE REALE
   Non usa pseudo-elementi: quindi resta realmente visibile.
   ------------------------------------------------------------------ */

html{
    background:#eef1ec!important;
}

body{

    background-color:#eef1ec!important;

    background-image:

        linear-gradient(
            rgba(246,248,244,.82),
            rgba(242,245,240,.82)
        ),

        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1000' height='760' viewBox='0 0 1000 760'%3E%3Cg fill='none' stroke='%234d6859' stroke-linecap='round' stroke-linejoin='round'%3E%3C!-- PLANIMETRIA --%3E%3Cg stroke-width='2.4' opacity='.34'%3E%3Cpath d='M90 125h310v215H90z'/%3E%3Cpath d='M220 125v215M90 235h310'/%3E%3Cpath d='M220 185h70v50'/%3E%3Cpath d='M150 235v-45'/%3E%3Cpath d='M150 190a45 45 0 0 1 45 45'/%3E%3Cpath d='M310 235v45'/%3E%3Cpath d='M310 280a45 45 0 0 0 45-45'/%3E%3C!-- SECONDO AMBIENTE --%3E%3Cpath d='M590 105h300v225H590z'/%3E%3Cpath d='M710 105v225M590 215h300'/%3E%3Cpath d='M790 215v-48'/%3E%3Cpath d='M790 167a48 48 0 0 0-48 48'/%3E%3C!-- QUOTE --%3E%3Cpath d='M90 95h310M90 87v16M400 87v16' stroke-dasharray='5 8'/%3E%3Cpath d='M590 75h300M590 67v16M890 67v16' stroke-dasharray='5 8'/%3E%3C!-- ELETTRICO --%3E%3Ccircle cx='350' cy='170' r='14'/%3E%3Cpath d='M340 170h20M350 160v20'/%3E%3Ccircle cx='660' cy='270' r='14'/%3E%3Cpath d='M650 270h20M660 260v20'/%3E%3Cpath d='M185 285h23M196 274v22'/%3E%3C!-- TUBAZIONE --%3E%3Cpath d='M535 420h120v78h115' stroke-width='4'/%3E%3Ccircle cx='535' cy='420' r='7'/%3E%3Ccircle cx='770' cy='498' r='7'/%3E%3C!-- MURATURA --%3E%3Cpath d='M100 475h270v125H100z'/%3E%3Cpath d='M100 515h270M100 557h270'/%3E%3Cpath d='M150 475v40M250 475v40M125 515v42M210 515v42M315 515v42M165 557v43M275 557v43'/%3E%3C!-- SAGOMA CASA --%3E%3Cpath d='M625 585 745 490l120 95' stroke-width='4'/%3E%3Cpath d='M650 565v110h190V565' stroke-width='4'/%3E%3Cpath d='M715 675v-70h55v70' stroke-width='4'/%3E%3Cpath d='M670 585h34v34h-34M790 585h30v34h-30'/%3E%3C!-- SIMBOLI TECNICI --%3E%3Ccircle cx='470' cy='205' r='28'/%3E%3Cpath d='M442 205h56M470 177v56'/%3E%3Cpath d='M455 190l30 30M485 190l-30 30'/%3E%3C!-- LINEE DISEGNO --%3E%3Cpath d='M450 80h75M450 88h42M460 650h100M472 658h65' stroke-dasharray='8 10'/%3E%3C/g%3E%3C/svg%3E");

    background-size:
        auto,
        920px 700px;

    background-repeat:
        repeat,
        repeat;

    background-position:
        center,
        center top;

    background-attachment:
        scroll,
        fixed;
}


/* ------------------------------------------------------------------
   HOME: lascia vedere davvero il background
   ------------------------------------------------------------------ */

.hero{

    background:
        linear-gradient(
            90deg,
            rgba(247,249,246,.88) 0%,
            rgba(247,249,246,.73) 48%,
            rgba(247,249,246,.60) 100%
        )!important;
}


.services{

    background:
        rgba(245,247,243,.68)!important;
}


.request{

    background:
        rgba(229,235,229,.78)!important;
}


.professionals{

    background:
        rgba(246,248,245,.70)!important;
}


/* ------------------------------------------------------------------
   TOGLIE LE VECCHIE ICONE GIGANTI CONTESTUALI
   ------------------------------------------------------------------ */

.request:after,
body.ap-customer main:before,
body.ap-admin main:before,
body.ap-operator main:before,
body.ap-professional main:before{

    display:none!important;
}


/* ------------------------------------------------------------------
   HERO PIU' LEGGIBILE E MENO SBIADITO
   ------------------------------------------------------------------ */

.hero h1 em{

    color:#77827b!important;
}


/* testo principale */

.hero-lead{

    color:#536158!important;
}


/* ------------------------------------------------------------------
   CARD
   Vetro leggero, senza cancellare completamente lo sfondo.
   ------------------------------------------------------------------ */

.wizard,
.panel,
.admin-card,
.customer-request-card,
.login-box{

    background:
        rgba(255,255,255,.94)!important;

    box-shadow:
        0 18px 55px rgba(23,45,34,.09)!important;
}


/* ------------------------------------------------------------------
   TRUST BAR
   ------------------------------------------------------------------ */

.trust{

    background:
        rgba(248,249,246,.80)!important;
}


/* ------------------------------------------------------------------
   AREE INTERNE
   ------------------------------------------------------------------ */

body.ap-internal{

    background-color:#eef1ec!important;

    background-image:

        linear-gradient(
            rgba(245,248,244,.82),
            rgba(241,245,240,.82)
        ),

        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='700' viewBox='0 0 900 700'%3E%3Cg fill='none' stroke='%234d6859' stroke-width='2.2' stroke-linecap='round' opacity='.30'%3E%3Cpath d='M75 105h290v210H75zM190 105v210M75 215h290'/%3E%3Cpath d='M525 95h285v205H525zM650 95v205M525 200h285'/%3E%3Cpath d='M90 465h260v120H90zM90 505h260M90 545h260M140 465v40M240 465v40M120 505v40M205 505v40M300 505v40'/%3E%3Cpath d='M560 555 660 475l100 80M580 540v95h160v-95M635 635v-58h50v58'/%3E%3Ccircle cx='445' cy='370' r='25'/%3E%3Cpath d='M420 370h50M445 345v50'/%3E%3Cpath d='M405 90h60M405 98h35M380 600h80' stroke-dasharray='7 10'/%3E%3C/g%3E%3C/svg%3E")!important;

    background-size:
        auto,
        880px 680px!important;

    background-repeat:
        repeat,
        repeat!important;

    background-attachment:
        scroll,
        fixed!important;
}


/* ------------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------------ */

@media(max-width:720px){

    body{

        background-size:
            auto,
            650px 495px!important;

        background-attachment:
            scroll,
            scroll!important;
    }

    body.ap-internal{

        background-size:
            auto,
            650px 505px!important;

        background-attachment:
            scroll,
            scroll!important;
    }

    .hero{

        background:
            rgba(247,249,246,.82)!important;
    }

}


/* ------------------------------------------------------------------
   SCHERMI GRANDI
   ------------------------------------------------------------------ */

@media(min-width:1500px){

    body{

        background-size:
            auto,
            1050px 798px;
    }

}



/* ==================================================================
   ABITAPRONTO24_HOME_RESTYLE_V1
   RESTYLING VISIBILE DELLA HOME
   ================================================================== */


/* ================================================================
   HOME - SFONDO GENERALE
   ================================================================ */

body:not(.ap-internal){
    background:#eceee9!important;
}


/* ================================================================
   HEADER HOME
   ================================================================ */

body:not(.ap-internal) .site-header{
    background:rgba(247,247,243,.96)!important;
    border-bottom:1px solid rgba(22,55,43,.10)!important;
    box-shadow:
        0 8px 30px rgba(20,45,35,.045)!important;
}

body:not(.ap-internal) .header-shell{
    max-width:1380px!important;
    height:82px!important;
}


/* ================================================================
   HERO
   ================================================================ */

body:not(.ap-internal) .hero{
    position:relative!important;
    overflow:hidden!important;

    min-height:690px!important;

    border-bottom:0!important;

    background-color:#e9ece6!important;

    background-image:

        linear-gradient(
            90deg,
            rgba(242,244,239,.96) 0%,
            rgba(242,244,239,.91) 42%,
            rgba(235,239,233,.82) 67%,
            rgba(229,235,228,.78) 100%
        ),

        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1100' height='700' viewBox='0 0 1100 700'%3E%3Cg fill='none' stroke='%233e6654' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg opacity='.34' stroke-width='2.2'%3E%3Cpath d='M55 120h335v235H55zM190 120v235M55 245h335'/%3E%3Cpath d='M190 190h70v55M120 245v-52M120 193a52 52 0 0 1 52 52'/%3E%3Cpath d='M302 245v50M302 295a50 50 0 0 0 50-50'/%3E%3Cpath d='M650 82h330v245H650zM780 82v245M650 205h330'/%3E%3Cpath d='M860 205v-54M860 151a54 54 0 0 0-54 54'/%3E%3Cpath d='M65 82h325M65 73v18M390 73v18' stroke-dasharray='7 10'/%3E%3Cpath d='M650 47h330M650 38v18M980 38v18' stroke-dasharray='7 10'/%3E%3Ccircle cx='450' cy='175' r='29'/%3E%3Cpath d='M421 175h58M450 146v58M430 155l40 40M470 155l-40 40'/%3E%3Cpath d='M505 415h150v85h130' stroke-width='4'/%3E%3Ccircle cx='505' cy='415' r='7'/%3E%3Ccircle cx='785' cy='500' r='7'/%3E%3Cpath d='M80 495h290v130H80zM80 538h290M80 582h290M140 495v43M250 495v43M110 538v44M205 538v44M315 538v44M165 582v43M275 582v43'/%3E%3Cpath d='M690 555 820 455l130 100M715 535v110h210V535M785 645v-72h65v72' stroke-width='3.2'/%3E%3C/g%3E%3C/svg%3E")!important;

    background-repeat:
        no-repeat,
        no-repeat!important;

    background-size:
        cover,
        1050px auto!important;

    background-position:
        center,
        68% 50%!important;
}


/* grandi forme decorative */

body:not(.ap-internal) .hero:before{
    content:""!important;

    position:absolute!important;

    width:640px!important;
    height:640px!important;

    right:-220px!important;
    top:-270px!important;

    border-radius:50%!important;

    background:
        rgba(62,102,84,.11)!important;

    pointer-events:none!important;
}


body:not(.ap-internal) .hero:after{
    content:""!important;

    position:absolute!important;

    width:300px!important;
    height:300px!important;

    left:-130px!important;
    bottom:-140px!important;

    border-radius:50%!important;

    background:
        rgba(174,143,83,.09)!important;

    pointer-events:none!important;
}


/* ================================================================
   HERO SHELL
   ================================================================ */

body:not(.ap-internal) .hero-shell{
    position:relative!important;
    z-index:2!important;

    max-width:1380px!important;

    min-height:690px!important;

    padding:
        72px 40px 78px!important;

    display:grid!important;

    grid-template-columns:
        minmax(0,1.03fr)
        minmax(460px,.97fr)!important;

    gap:74px!important;

    align-items:center!important;
}


/* ================================================================
   HERO COPY
   ================================================================ */

body:not(.ap-internal) .hero-copy{
    max-width:690px!important;
}


body:not(.ap-internal) .eyebrow{
    display:inline-flex!important;

    width:auto!important;

    padding:
        8px 12px!important;

    border:
        1px solid rgba(23,61,49,.12)!important;

    border-radius:999px!important;

    background:
        rgba(255,255,255,.55)!important;

    backdrop-filter:
        blur(8px)!important;

    color:#456052!important;

    font-size:.68rem!important;
}


body:not(.ap-internal) .eyebrow span{
    background:#4f765f!important;

    box-shadow:
        0 0 0 5px
        rgba(79,118,95,.11)!important;
}


/* ================================================================
   HEADLINE
   ================================================================ */

body:not(.ap-internal) .hero h1{
    max-width:690px!important;

    margin:
        23px 0 0!important;

    color:#101812!important;

    font-size:
        clamp(
            3.8rem,
            5.4vw,
            6.15rem
        )!important;

    line-height:.91!important;

    letter-spacing:
        -.065em!important;
}


body:not(.ap-internal) .hero h1 em{
    display:block!important;

    margin-top:15px!important;

    color:#66766d!important;

    font-size:.82em!important;

    line-height:.94!important;

    letter-spacing:
        -.055em!important;

    font-style:normal!important;
}


/* ================================================================
   TESTO
   ================================================================ */

body:not(.ap-internal) .hero-lead{
    max-width:600px!important;

    margin-top:30px!important;

    color:#56645b!important;

    font-size:1.08rem!important;

    line-height:1.68!important;
}


/* ================================================================
   CTA
   ================================================================ */

body:not(.ap-internal) .hero-actions{
    margin-top:31px!important;

    display:flex!important;

    gap:14px!important;
}


body:not(.ap-internal) .button-primary{
    min-height:54px!important;

    padding:
        0 22px!important;

    border-radius:15px!important;

    background:
        #12392c!important;

    color:#fff!important;

    box-shadow:
        0 12px 30px
        rgba(18,57,44,.18)!important;

    font-size:.85rem!important;

    gap:26px!important;
}


body:not(.ap-internal) .button-primary:hover{
    transform:
        translateY(-2px)!important;

    background:
        #0b2d22!important;
}


body:not(.ap-internal) .button-link{
    min-height:54px!important;

    padding:
        0 18px!important;

    display:inline-flex!important;

    align-items:center!important;

    border:
        1px solid rgba(23,61,49,.11)!important;

    border-radius:15px!important;

    background:
        rgba(255,255,255,.5)!important;

    color:#273a30!important;
}


/* ================================================================
   BENEFIT
   ================================================================ */

body:not(.ap-internal) .hero-benefits{
    margin-top:26px!important;

    display:flex!important;

    gap:9px!important;
}


body:not(.ap-internal) .hero-benefits span{
    padding:
        8px 11px!important;

    border:
        1px solid rgba(23,61,49,.10)!important;

    border-radius:999px!important;

    background:
        rgba(255,255,255,.58)!important;

    color:#56665c!important;

    font-size:.70rem!important;
}


/* ================================================================
   HERO VISUAL
   ================================================================ */

body:not(.ap-internal) .hero-visual{
    position:relative!important;

    min-height:530px!important;

    padding:18px!important;

    border:
        1px solid rgba(23,61,49,.10)!important;

    border-radius:34px!important;

    background:
        rgba(255,255,255,.50)!important;

    box-shadow:
        0 30px 80px
        rgba(25,49,38,.13)!important;

    backdrop-filter:
        blur(8px)!important;
}


/* ================================================================
   CASA VISUALE
   ================================================================ */

body:not(.ap-internal) .home-scene{
    left:18px!important;
    right:18px!important;
    top:18px!important;

    height:440px!important;

    border-radius:25px!important;

    box-shadow:none!important;

    border:
        1px solid rgba(23,61,49,.08)!important;
}


/* ================================================================
   FLOATING CARD
   ================================================================ */

body:not(.ap-internal) .floating-job{
    right:-20px!important;
    bottom:-12px!important;

    width:410px!important;

    padding:21px!important;

    border:
        1px solid
        rgba(255,255,255,.08)!important;

    border-radius:22px!important;

    background:
        linear-gradient(
            145deg,
            #0b3327,
            #0c2c23
        )!important;

    box-shadow:
        0 28px 60px
        rgba(6,29,22,.24)!important;
}


/* ================================================================
   TRUST BAR
   ================================================================ */

body:not(.ap-internal) .trust{
    position:relative!important;

    z-index:3!important;

    padding:
        0 30px 42px!important;

    border-bottom:0!important;

    background:
        linear-gradient(
            180deg,
            #e9ece6,
            #eef0eb
        )!important;
}


body:not(.ap-internal) .trust-shell{
    max-width:1320px!important;

    padding:12px!important;

    display:grid!important;

    grid-template-columns:
        repeat(4,1fr)!important;

    gap:10px!important;

    border:
        1px solid rgba(23,61,49,.08)!important;

    border-radius:22px!important;

    background:
        rgba(255,255,255,.72)!important;

    box-shadow:
        0 14px 40px
        rgba(18,42,32,.06)!important;
}


body:not(.ap-internal) .trust-shell>div{
    min-height:96px!important;

    padding:
        18px 20px!important;

    border:0!important;

    border-radius:15px!important;

    background:
        rgba(246,248,245,.8)!important;
}


body:not(.ap-internal) .trust-shell>div:first-child{
    border-left:0!important;
}


body:not(.ap-internal) .trust-shell strong{
    color:#183b2e!important;

    font-size:.93rem!important;
}


body:not(.ap-internal) .trust-shell span{
    margin-top:7px!important;

    color:#738078!important;

    font-size:.71rem!important;
}


/* ================================================================
   SERVIZI
   ================================================================ */

body:not(.ap-internal) .services{
    position:relative!important;

    padding:
        105px 30px!important;

    background:

        linear-gradient(
            rgba(246,247,244,.91),
            rgba(246,247,244,.91)
        ),

        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='650' height='650' viewBox='0 0 650 650'%3E%3Cg fill='none' stroke='%234f6d5d' stroke-width='2.4' opacity='.25'%3E%3Cpath d='M60 160h220v160H60zM150 160v160M60 245h220'/%3E%3Cpath d='M360 120h230v170H360zM450 120v170M360 205h230'/%3E%3Cpath d='M75 445h190v90H75zM75 475h190M75 505h190M120 445v30M195 445v30M100 475v30M170 475v30M235 475v30'/%3E%3Cpath d='M390 470 475 405l85 65M410 454v92h130v-92'/%3E%3C/g%3E%3C/svg%3E")!important;

    background-repeat:
        no-repeat,
        repeat!important;

    background-size:
        cover,
        650px 650px!important;
}


/* service cards */

body:not(.ap-internal) .service-grid article{
    padding:16px 16px 22px!important;

    border:
        1px solid rgba(23,61,49,.08)!important;

    border-radius:21px!important;

    background:
        rgba(255,255,255,.80)!important;

    box-shadow:
        0 10px 32px
        rgba(20,45,34,.05)!important;
}


/* ================================================================
   MOBILE
   ================================================================ */

@media(max-width:980px){

    body:not(.ap-internal) .hero-shell{
        grid-template-columns:
            1fr!important;

        gap:45px!important;
    }

    body:not(.ap-internal) .hero-visual{
        min-height:560px!important;
    }

}


@media(max-width:720px){

    body:not(.ap-internal) .hero{
        min-height:auto!important;

        background-position:
            center,
            70% 20%!important;

        background-size:
            cover,
            720px auto!important;
    }

    body:not(.ap-internal) .hero-shell{
        min-height:auto!important;

        padding:
            48px 18px 62px!important;
    }

    body:not(.ap-internal) .hero h1{
        font-size:
            clamp(
                3rem,
                14vw,
                4.1rem
            )!important;
    }

    body:not(.ap-internal) .hero-actions{
        align-items:stretch!important;

        flex-direction:column!important;
    }

    body:not(.ap-internal) .button-primary,
    body:not(.ap-internal) .button-link{
        width:100%!important;

        justify-content:center!important;
    }

    body:not(.ap-internal) .hero-benefits{
        align-items:flex-start!important;

        flex-direction:column!important;
    }

    body:not(.ap-internal) .hero-visual{
        min-height:510px!important;

        padding:10px!important;
    }

    body:not(.ap-internal) .home-scene{
        left:10px!important;
        right:10px!important;
        top:10px!important;

        height:390px!important;
    }

    body:not(.ap-internal) .floating-job{
        left:22px!important;
        right:-5px!important;
        bottom:-8px!important;

        width:auto!important;
    }

    body:not(.ap-internal) .trust{
        padding:
            0 14px 30px!important;
    }

    body:not(.ap-internal) .trust-shell{
        grid-template-columns:
            1fr 1fr!important;
    }

}


@media(max-width:460px){

    body:not(.ap-internal) .trust-shell{
        grid-template-columns:
            1fr!important;
    }

}



/* ============================================================
   ABITAPRONTO24_DELETE_CUSTOMER_STYLE
   ============================================================ */

.admin-delete-customer-form{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid #eee2e0;
}

.admin-delete-customer-form .danger{
    color:#8b302b!important;
    background:#fff3f2!important;
    border:1px solid #e5beba!important;
}

.admin-delete-customer-form .danger:hover{
    color:#fff!important;
    background:#9a3b34!important;
    border-color:#9a3b34!important;
    box-shadow:
        0 8px 20px rgba(154,59,52,.17)!important;
}



/* ABITAPRONTO24_PRIVACY_NATIVE_FINAL_CSS_V1 */

.ap24-native-privacy{
    box-sizing:border-box;
    width:100%;
    margin:18px 0 0;
    padding:16px 18px;
    border:1px solid #d8e2da;
    border-radius:13px;
    background:#f7f9f7;
}

.ap24-native-privacy-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:12px;
}

.ap24-native-privacy-head > div{
    min-width:0;
}

.ap24-native-privacy-head small{
    display:block;
    margin-bottom:3px;
    color:#7b8980;
    font-size:.60rem;
    font-weight:850;
    letter-spacing:.13em;
}

.ap24-native-privacy-head strong{
    display:block;
    color:#214e38;
    font-size:.88rem;
    line-height:1.3;
}

.ap24-native-privacy-head a{
    flex:0 0 auto;
    color:#1d6241;
    font-size:.77rem;
    font-weight:800;
    white-space:nowrap;
    text-decoration:underline;
    text-underline-offset:3px;
}

.ap24-native-privacy-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:0;
    padding:0;
    color:#506359;
    font-size:.80rem;
    line-height:1.5;
    cursor:pointer;
}

.ap24-native-privacy-check input{
    appearance:auto;
    flex:0 0 18px;
    width:18px;
    height:18px;
    min-width:18px;
    min-height:18px;
    margin:2px 0 0;
    padding:0;
    accent-color:#195b3d;
    cursor:pointer;
}

.ap24-native-privacy-note{
    margin:9px 0 0;
    color:#7b8880;
    font-size:.69rem;
    line-height:1.45;
}

@media(max-width:700px){

    .ap24-native-privacy-head{
        flex-direction:column;
        gap:7px;
    }

    .ap24-native-privacy-head a{
        white-space:normal;
    }
}

/* /ABITAPRONTO24_PRIVACY_NATIVE_FINAL_CSS_V1 */

