*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#f5f3ef;color:#0d1b2a;overflow-x:hidden}a{color:inherit}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid #e6dcc9;display:flex;justify-content:space-between;align-items:center;padding:14px 22px}.site-header.compact{padding:10px 18px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;letter-spacing:.02em}.brand img{width:58px;height:58px;object-fit:contain}.compact .brand img{width:42px;height:42px}.admin-link,.button,button,.card-actions a,.liberalizzazione a{background:#0d1b2a;color:white;text-decoration:none;border:0;border-radius:14px;padding:11px 16px;font-weight:700;cursor:pointer;display:inline-block}.mobile-tabs{position:sticky;top:86px;z-index:49;background:rgba(245,243,239,.96);backdrop-filter:blur(12px);display:flex;gap:10px;overflow-x:auto;padding:10px 14px;border-bottom:1px solid #e6dcc9}.mobile-tabs a,.quick-nav a,.tag{white-space:nowrap;text-decoration:none;border:1px solid #d7c79c;border-radius:999px;padding:9px 13px;background:#fff;color:#0d1b2a;font-size:.92rem}.hero{padding:54px 22px;background:linear-gradient(135deg,#0d1b2a,#203a58);color:white}.hero>div{max-width:1100px;margin:auto}.hero h1{font-size:clamp(2rem,5vw,4.5rem);margin:0 0 12px}.hero p{font-size:1.1rem;max-width:850px;opacity:.9}.search-box{display:flex;gap:10px;margin-top:22px;max-width:850px}.search-box input,.contact-form input,.contact-form textarea,.inline-form input,.download-box input{width:100%;padding:15px;border-radius:14px;border:1px solid #ddd;font-size:1rem}.search-box button{min-width:120px}.quick-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.layout{display:grid;grid-template-columns:280px 1fr;gap:24px;max-width:1500px;margin:24px auto;padding:0 20px}.sidebar{position:sticky;top:145px;align-self:start;max-height:calc(100vh - 165px);overflow:auto;background:white;border:1px solid #eadfc9;border-radius:24px;padding:18px;box-shadow:0 12px 35px rgba(13,27,42,.08)}.sidebar h2,.content-section h2{margin-top:0}.category-list{display:flex;flex-direction:column;gap:9px}.category-list a{display:flex;justify-content:space-between;gap:10px;text-decoration:none;padding:12px 14px;background:#f9f6ef;border:1px solid #eadfc9;border-radius:14px}.main-content{min-width:0}.content-section,.contact-section,.study-card,.admin-card{background:white;border:1px solid #eadfc9;border-radius:26px;padding:22px;margin-bottom:24px;box-shadow:0 12px 35px rgba(13,27,42,.07)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.content-card{border:1px solid #eadfc9;border-radius:22px;padding:18px;background:#fffdf8;display:flex;flex-direction:column;gap:12px;min-width:0}.content-card h3{margin:0;font-size:1.15rem}.content-card p{margin:0;color:#4e5b66}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#68737d;font-size:.85rem}.badge{background:#c9a84c;color:#0d1b2a;border-radius:999px;padding:6px 10px;font-weight:800;font-size:.75rem}.tags{display:flex;flex-wrap:wrap;gap:7px}.tag{padding:6px 10px;font-size:.8rem}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.card-actions a{font-size:.9rem;padding:9px 12px}.footer{text-align:center;padding:34px 18px;background:#0d1b2a;color:#fff;margin-top:30px}.footer a{color:#f1d58b}.top-btn{position:fixed;right:16px;bottom:16px;z-index:60;border-radius:999px;padding:13px 15px;background:#c9a84c;color:#0d1b2a}.study-layout{max-width:1000px;margin:24px auto;padding:0 18px}.study-logo{width:100px;max-width:35vw}.breadcrumb{color:#68737d}.pdf-frame{width:100%;height:75vh;border:1px solid #eadfc9;border-radius:18px;background:#f3f3f3}.protected-reader,.liberalizzazione{background:#f9f6ef;border:1px solid #eadfc9;border-radius:20px;padding:18px;margin:18px 0}.notice{font-weight:700}.media-player{width:100%;border-radius:18px;margin:18px 0}.admin-body{display:grid;place-items:center;min-height:100vh}.login-box,.download-box{max-width:460px;margin:60px auto;background:white;border-radius:26px;padding:28px;border:1px solid #eadfc9;text-align:center}.login-box img,.download-box img{width:100px}.admin-panel{max-width:1400px;margin:24px auto;padding:0 20px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-bottom:24px}.admin-card.wide{grid-column:1/-1}.admin-message{background:#e8f7ee;color:#145c2e;border:1px solid #b9e4c9;padding:14px 18px;border-radius:18px;margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-grid span,.category-pills span{background:#f9f6ef;border:1px solid #eadfc9;border-radius:14px;padding:12px}.inline-form{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.category-pills{display:flex;flex-wrap:wrap;gap:10px}.admin-list{display:flex;flex-direction:column;gap:10px}.admin-row{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#f9f6ef;border:1px solid #eadfc9;border-radius:16px;padding:12px}.admin-row small{display:block;color:#65717c;margin-top:4px}.row-actions{display:flex;gap:8px;align-items:center}.row-actions form{margin:0}.danger{background:#9b1c1c}.contact-form{display:grid;gap:10px}.contact-form textarea{min-height:110px}.inline-link{color:#8b6b12;font-weight:800}
@media(max-width:850px){.site-header{padding:10px 12px}.brand span{font-size:.98rem}.brand img{width:44px;height:44px}.admin-link{padding:9px 11px}.mobile-tabs{top:65px}.layout{display:block;padding:0 12px;margin-top:14px}.sidebar{position:sticky;top:116px;z-index:45;max-height:none;overflow-x:auto;overflow-y:hidden;border-radius:18px;padding:10px;margin-bottom:14px}.sidebar h2{display:none}.category-list{flex-direction:row}.category-list a{min-width:max-content}.search-box{flex-direction:column}.hero{padding:34px 16px}.content-section,.contact-section,.study-card,.admin-card{padding:16px;border-radius:20px}.grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.admin-row{align-items:flex-start;flex-direction:column}.pdf-frame{height:70vh}.stat-grid{grid-template-columns:1fr 1fr}body{width:100%;max-width:100%;}.quick-nav{overflow-x:auto;flex-wrap:nowrap}.mobile-tabs a{font-size:.85rem}}
@media(max-width:420px){.stat-grid{grid-template-columns:1fr}.brand span{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}


/* LOGO RESPONSIVE */
.site-logo,
.logo img,
header img{
    max-width:100%;
    height:auto;
    object-fit:contain;
}

@media (max-width:768px){
    .site-logo,
    .logo img,
    header img{
        max-width:220px;
    }
}


/* GEMINI FLOATING CHAT */
.gemini-chat{
    position:fixed;
    right:18px;
    bottom:82px;
    z-index:9999;
    font-family:inherit;
}

.gemini-toggle{
    width:58px;
    height:58px;
    border-radius:50%;
    border:0;
    background:#0d1b2a;
    color:#fff;
    font-weight:900;
    box-shadow:0 12px 35px rgba(0,0,0,.28);
    cursor:pointer;
}

.gemini-panel{
    position:absolute;
    right:0;
    bottom:72px;
    width:min(380px, calc(100vw - 28px));
    height:min(540px, calc(100vh - 150px));
    background:#fff;
    border:1px solid #eadfc9;
    border-radius:24px;
    box-shadow:0 20px 55px rgba(0,0,0,.28);
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

.gemini-head{
    background:#0d1b2a;
    color:#fff;
    padding:14px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.gemini-head span{
    display:block;
    font-size:.78rem;
    opacity:.78;
    margin-top:2px;
}

.gemini-head button{
    background:transparent;
    color:#fff;
    border:0;
    font-size:28px;
    cursor:pointer;
}

.gemini-messages{
    flex:1;
    padding:14px;
    overflow-y:auto;
    background:#f9f6ef;
}

.gemini-msg{
    padding:10px 12px;
    border-radius:16px;
    margin-bottom:10px;
    line-height:1.35;
    font-size:.92rem;
    white-space:pre-wrap;
}

.gemini-msg.bot{
    background:#fff;
    border:1px solid #eadfc9;
    color:#0d1b2a;
}

.gemini-msg.user{
    background:#0d1b2a;
    color:#fff;
    margin-left:35px;
}

.gemini-msg.error{
    border-color:#d99;
    background:#fff1f1;
}

.gemini-form{
    display:flex;
    gap:8px;
    padding:12px;
    background:#fff;
    border-top:1px solid #eadfc9;
}

.gemini-form input{
    flex:1;
    border:1px solid #d7c79c;
    border-radius:14px;
    padding:11px;
    min-width:0;
}

.gemini-form button{
    border:0;
    border-radius:14px;
    padding:11px 14px;
    background:#c9a84c;
    color:#0d1b2a;
    font-weight:800;
    cursor:pointer;
}

@media(max-width:768px){
    .gemini-chat{
        right:14px;
        bottom:74px;
    }

    .gemini-toggle{
        width:54px;
        height:54px;
    }

    .gemini-panel{
        right:-4px;
        bottom:66px;
        width:calc(100vw - 20px);
        height:min(520px, calc(100vh - 130px));
        border-radius:20px;
    }
}


/* ALEF-TEO LOGO ANIMATO E LINK RISULTATI */
.alef-teo-toggle{
    padding:0;
    display:grid;
    place-items:center;
    overflow:hidden;
    border:2px solid #c9a84c;
    animation:alefPulse 2.4s infinite ease-in-out;
}

.alef-teo-toggle img{
    width:44px;
    height:44px;
    object-fit:contain;
    border-radius:50%;
    animation:alefFloat 3s infinite ease-in-out;
}

.alef-teo-title{
    display:flex;
    align-items:center;
    gap:10px;
}

.alef-teo-title img{
    width:42px;
    height:42px;
    object-fit:contain;
    border-radius:50%;
    background:#fff;
    padding:3px;
    animation:alefFloat 3s infinite ease-in-out;
}

.gemini-links{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-top:12px;
}

.gemini-result-link{
    display:block;
    padding:10px 12px;
    border-radius:14px;
    background:#f9f6ef;
    border:1px solid #eadfc9;
    color:#0d1b2a;
    text-decoration:none;
    transition:.18s ease;
}

.gemini-result-link:hover{
    background:#0d1b2a;
    color:#fff;
    transform:translateY(-1px);
}

.gemini-result-link strong{
    display:block;
    font-size:.92rem;
    line-height:1.25;
}

.gemini-result-link span{
    display:block;
    margin-top:3px;
    font-size:.75rem;
    opacity:.72;
}

@keyframes alefPulse{
    0%,100%{box-shadow:0 12px 35px rgba(0,0,0,.28),0 0 0 0 rgba(201,168,76,.45)}
    50%{box-shadow:0 12px 35px rgba(0,0,0,.28),0 0 0 12px rgba(201,168,76,0)}
}

@keyframes alefFloat{
    0%,100%{transform:translateY(0) scale(1)}
    50%{transform:translateY(-2px) scale(1.04)}
}


/* ALEF-TEO FIX DEFINITIVO */
.alef-teo-brand{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-bottom:1px solid #eadfc9;
    background:#fff;
    font-weight:800;
    color:#0d1b2a;
}

.alef-teo-brand img{
    width:42px;
    max-height:42px;
    object-fit:contain;
}

.alef-teo-toggle{
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    overflow:hidden!important;
    border:2px solid #c9a84c!important;
    animation:alefPulse 2.4s infinite ease-in-out;
}

.alef-teo-toggle img{
    width:48px!important;
    height:48px!important;
    object-fit:contain!important;
    border-radius:50%;
    animation:alefFloat 3s infinite ease-in-out;
}

.alef-teo-title{
    display:flex;
    align-items:center;
    gap:10px;
}

.alef-teo-title img{
    width:44px;
    height:44px;
    object-fit:contain;
    border-radius:50%;
    background:#fff;
    padding:2px;
    animation:alefFloat 3s infinite ease-in-out;
}

.gemini-links{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-top:12px;
}

.gemini-result-link{
    display:block;
    padding:10px 12px;
    border-radius:14px;
    background:#f9f6ef;
    border:1px solid #eadfc9;
    color:#0d1b2a;
    text-decoration:none;
    transition:.18s ease;
}

.gemini-result-link:hover{
    background:#0d1b2a;
    color:#fff;
    transform:translateY(-1px);
}

.gemini-result-link strong{
    display:block;
    font-size:.92rem;
    line-height:1.25;
}

.gemini-result-link span{
    display:block;
    margin-top:3px;
    font-size:.75rem;
    opacity:.72;
}

@keyframes alefPulse{
    0%,100%{box-shadow:0 12px 35px rgba(0,0,0,.28),0 0 0 0 rgba(201,168,76,.45)}
    50%{box-shadow:0 12px 35px rgba(0,0,0,.28),0 0 0 12px rgba(201,168,76,0)}
}

@keyframes alefFloat{
    0%,100%{transform:translateY(0) scale(1)}
    50%{transform:translateY(-2px) scale(1.04)}
}
