/* Container */
    .ipll{width:100%;max-width:100%;box-sizing:border-box}
    .ipll *{box-sizing:border-box}
    .ipll-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

    /* TOOLBAR - proportional flex sizing
       search: grows the most (flex-grow: 2)
       sort:   smaller fixed-ish width
       toggle: natural width */
    .ipll-toolbar{
        display:flex;
        align-items:center;
        gap:12px;
        margin-bottom:20px;
        width:100%;
        flex-wrap:wrap;
    }
    .ipll-search-box{
        position:relative;
        flex:2 1 280px;
        min-width:0;
    }
    .ipll-search-ico{
        position:absolute;
        left:14px;
        top:50%;
        transform:translateY(-50%);
        width:16px;
        height:16px;
        color:#888;
        pointer-events:none;
        z-index:1;
    }
    .ipll-search{
        width:100%;
        height:42px;
        padding:0 14px 0 34px !important;
        border:1px solid #ddd;
        border-radius:6px;
        font-size:14px;
        background-color:#fff;
        color:#333;
        transition:border-color .15s,box-shadow .15s;
    }
    .ipll-search:focus{outline:none;border-color:#0073aa;box-shadow:0 0 0 2px rgba(0,115,170,.15)}
    .ipll-search::-webkit-search-decoration,
    .ipll-search::-webkit-search-cancel-button{-webkit-appearance:none}

    .ipll-sort{
        flex:1 1 160px;
        min-width:140px;
        max-width:200px;
        height:42px;
        padding:0 34px 0 14px;
        border:1px solid #ddd;
        border-radius:6px;
        font-size:14px;
        background-color:#fff;
        background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath stroke='%23666' stroke-width='1.5' fill='none' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
        background-repeat:no-repeat;
        background-position:right 10px center;
        background-size:14px;
        color:#333;
        -webkit-appearance:none;
        appearance:none;
        cursor:pointer;
        transition:border-color .15s,box-shadow .15s;
    }
    .ipll-sort:focus{outline:none;border-color:#0073aa;box-shadow:0 0 0 2px rgba(0,115,170,.15)}

    /* VIEW TOGGLE - robust icon handling for <i>, <svg>, and <img> */
    .ipll-toggle{
        display:flex;
        flex:0 0 auto;
        background-color:#f0f0f0;
        border-radius:8px;
        padding:4px;
    }
    .ipll-tog-btn{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:36px;
        height:36px;
        border:0;
        background-color:transparent;
        border-radius:6px;
        cursor:pointer;
        color:#666;
        padding:0;
        margin:0;
        line-height:1;
        font-size:0;
        transition:background-color .15s,color .15s;
    }
    .ipll-tog-btn:hover{background-color:rgba(0,0,0,.06)}
    .ipll-tog-btn:focus-visible{outline:2px solid #0073aa;outline-offset:1px}
    .ipll-tog-btn[aria-pressed="true"]{background-color:#0073aa;color:#fff}

    /* Icon inside toggle: covers Font Awesome <i>, inline <svg>, and uploaded <img> */
    .ipll-tog-btn i{font-size:16px;line-height:1;color:inherit}
    .ipll-tog-btn svg{width:16px;height:16px;display:block;fill:currentColor}
    .ipll-tog-btn img{width:16px;height:16px;display:block;object-fit:contain}
    /* For <img>-rendered uploaded SVG (custom upload), invert color on active state */
    .ipll-tog-btn[aria-pressed="true"] img{filter:brightness(0) invert(1)}
    /* Catch wrapped icons (Elementor sometimes wraps in <span>) */
    .ipll-tog-btn span{display:inline-flex;align-items:center;justify-content:center;line-height:1}

    /* LIST VIEW */
    .ipll-list{display:flex;flex-direction:column;gap:10px}
    .ipll-item{display:flex;align-items:center;gap:16px;padding:16px 20px;background-color:#fff;border:1px solid #e5e5e5;border-radius:8px;transition:background-color .15s,border-color .15s,box-shadow .15s}
    .ipll-item:hover{background-color:#fafafa;box-shadow:0 2px 8px rgba(0,0,0,.06)}
    .ipll-pdf-icon{flex-shrink:0;line-height:1;color:#e74c3c;display:inline-flex;align-items:center;justify-content:center}
    .ipll-pdf-icon i{font-size:32px;color:inherit;line-height:1}
    .ipll-pdf-icon svg{width:32px;height:32px;fill:currentColor}
    .ipll-pdf-icon img{width:32px;height:32px;object-fit:contain}
    .ipll-info{flex:1;min-width:0}
    .ipll-title{margin-bottom:3px}
    .ipll-title a{color:#222;text-decoration:none;font-weight:600;font-size:15px;transition:color .15s}
    .ipll-title a:hover{color:#0073aa}
    .ipll-meta{color:#777;font-size:13px}
    .ipll-btns{display:flex;gap:8px;flex-shrink:0}

    /* BUTTONS */
    .ipll-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 18px;border-radius:5px;font-size:13px;font-weight:500;text-decoration:none;border:0;cursor:pointer;transition:background-color .15s,color .15s}
    .ipll-btn-view{background-color:#0073aa;color:#fff}
    .ipll-btn-view:hover{background-color:#005a87;color:#fff}
    .ipll-btn-dl{background-color:#27ae60;color:#fff}
    .ipll-btn-dl:hover{background-color:#1e8449;color:#fff}
    .ipll-btn-ico{padding:8px;border-radius:50%;width:32px;height:32px}
    .ipll-btn-ico svg{width:16px;height:16px;display:block}

    /* GRID VIEW */
    .ipll-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
    .ipll-card{position:relative;background-color:#fff;border:1px solid #e5e5e5;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s,border-color .2s}
    .ipll-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px)}
    .ipll-card-link{display:block;text-decoration:none;color:inherit}
    .ipll-preview{height:200px;background:linear-gradient(135deg,#f5f5f5,#eaeaea);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
    .ipll-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:inherit;z-index:2}
    .ipll-loader.hide{display:none}
    .ipll-spin{width:24px;height:24px;color:#888;animation:ipll-spin 1s linear infinite}
    @keyframes ipll-spin{to{transform:rotate(360deg)}}
    .ipll-canvas{max-width:100%;max-height:100%;object-fit:contain;display:none}
    .ipll-canvas.show{display:block}
    .ipll-fb{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#aaa}
    .ipll-fb.hide{display:none}
    .ipll-fb svg{width:40px;height:40px}
    .ipll-fb span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
    .ipll-card-info{padding:14px 16px}
    .ipll-card-title{font-weight:600;font-size:14px;color:#222;margin-bottom:4px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s}
    .ipll-card:hover .ipll-card-title{color:#0073aa}
    .ipll-card-meta{font-size:12px;color:#777}
    .ipll-card-dl{ position:absolute; top:10px; right:10px; opacity:0; transition:opacity .15s; z-index:3; pointer-events:none; }
    .ipll-card:hover .ipll-card-dl{ opacity:1; pointer-events:auto; }
    .ipll-card-dl .ipll-btn.ipll-btn-ico{ padding:0; width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.15); }
    .ipll-card-dl .ipll-btn.ipll-btn-ico svg{ width:16px; height:16px; display:block; flex-shrink:0; }
    .ipll-empty{text-align:center;padding:40px 16px;color:#666;font-size:14px}
    .ipll-item.hide,.ipll-card.hide{display:none}

    /* RESPONSIVE */
    @media (max-width:800px){
        .ipll-toolbar{gap:10px}
        .ipll-search-box{flex:1 1 100%;order:1}
        .ipll-sort{flex:1 1 auto;max-width:none;order:2}
        .ipll-toggle{order:3}
        .ipll-grid{grid-template-columns:repeat(2,1fr);gap:14px}
    }
    @media (max-width:540px){
        .ipll-item{flex-direction:column;align-items:stretch;gap:12px}
        .ipll-btns{justify-content:stretch}
        .ipll-btn{flex:1;justify-content:center}
        .ipll-grid{grid-template-columns:1fr}
        .ipll-card-dl{opacity:1}
    }
    @media (prefers-reduced-motion:reduce){
        .ipll-item,.ipll-card,.ipll-btn,.ipll-spin,.ipll-search,.ipll-sort,.ipll-tog-btn{transition:none;animation:none}
        .ipll-card:hover{transform:none}
    }

/* Word doc preview (no PDF.js) */
.ipll-preview-doc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#eef2fa;color:#2b579a;font-weight:700}
.ipll-preview-doc svg{stroke:#2b579a}
.ipll-preview-doc span{font-size:12px;letter-spacing:.05em}
