/* ===============================
   ROOT THEME
=============================== */

:root{
    --bg:#070b16;
    --glass:rgba(20,30,60,.55);
    --border:rgba(255,255,255,.08);
    --text:#e5e7eb;
    --muted:#94a3b8;
    --blue:#3b82f6;
    --green:#22c55e;
    --red:#ef4444;
}

body{
    background:radial-gradient(circle at top,#0f172a,#020617);
    color:var(--text);
}

/* ===============================
   CONTAINER
=============================== */

.osis-app{
    max-width:900px;
    margin:40px auto;
    padding:15px;
}

/* ===============================
   GLASS CARDS
=============================== */

.osis-card,
.osis-form{
    background:var(--glass);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border:1px solid var(--border);
    border-radius:20px;
    padding:22px;
    box-shadow:0 20px 50px rgba(0,0,0,.6);
    transition:.3s;
}

.osis-card:hover{
    transform:translateY(-4px) scale(1.01);
    box-shadow:0 30px 70px rgba(0,0,0,.85);
}

.osis-card h3{
    margin:0 0 8px;
    font-size:18px;
    color:white;
}

.osis-card p{
    color:var(--muted);
    font-size:14px;
    line-height:1.6;
}

/* ===============================
   FILTER
=============================== */

.osis-filter select,
.osis-form input,
.osis-form textarea,
.osis-form select{
    width:100%;
    padding:12px 14px;
    background:rgba(10,15,30,.9);
    border:1px solid var(--border);
    border-radius:12px;
    color:white;
    outline:none;
}

.osis-filter select:focus,
.osis-form input:focus{
    border-color:var(--blue);
}

/* ===============================
   BUTTONS (UNIFIED STYLE)
=============================== */

.st-open-btn,
.osis-detail-btn,
.osis-delete{
    padding:12px 18px;
    border-radius:999px;          /* bikin semua oval */
    font-weight:700;
    border:none;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    min-width:120px;              /* biar semua lebar sama */
    text-decoration:none;
    transition:.25s ease;
}

/* OPEN / DOWNLOAD */
.st-open-btn{
    background:linear-gradient(135deg,#3b82f6,#2563eb);
    color:white;
}
.st-open-btn:hover{
    transform:scale(1.06);
    box-shadow:0 0 25px #3b82f6aa;
}

/* DETAIL */
.osis-detail-btn{
    background:linear-gradient(135deg,#1e293b,#334155);
    color:white;
}
.osis-detail-btn:hover{
    background:linear-gradient(135deg,#334155,#475569);
    transform:scale(1.06);
}

/* DELETE */
.osis-delete{
    background:linear-gradient(135deg,#7f1d1d,#ef4444);
    color:white;
}
.osis-delete:hover{
    transform:scale(1.06);
    box-shadow:0 0 25px #ef4444aa;
}


/* ===============================
   EXPIRED
=============================== */

.st-expired{
    display:inline-block;
    padding:8px 16px;
    background:linear-gradient(135deg,#7f1d1d,#991b1b);
    border-radius:999px;
    color:white;
    font-weight:700;
}

/* ===============================
   DELETE
=============================== */

.osis-delete{
    composes: osis-btn;
    margin-top:12px; 
    padding:10px 16px; 
    background:linear-gradient(135deg,#7f1d1d,#ef4444);
    color:white;
    border-radius:999px; 
    box-shadow:0 0 20px #ef444455;
}


/* ===============================
   MODAL (GLASS + ANIMATION)
=============================== */

.osis-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(10px);
    display:none;              
    align-items:center;
    justify-content:center;
    z-index:9999;
}

.osis-modal.active{
    display:flex;              
}

.osis-modal-box{
    background:rgba(15,23,42,.85);
    backdrop-filter:blur(20px);
    border:1px solid var(--border);
    border-radius:24px;
    padding:28px;
    width:90%;
    max-width:520px;
    box-shadow:0 40px 100px rgba(0,0,0,.9);
    animation:modalPop .4s ease;
}




/* ===============================
   ANIMATIONS
=============================== */

@keyframes fade{
    from{opacity:0;}
    to{opacity:1;}
}

@keyframes zoom{
    from{transform:scale(.7);opacity:0;}
    to{transform:scale(1);opacity:1;}
}

@keyframes modalPop{
    from{
        opacity:0;
        transform:scale(.85) translateY(40px);
    }
    to{
        opacity:1;
        transform:scale(1) translateY(0);
    }
}

/* ===============================
   BUTTONS (UNIFIED STYLE)
=============================== */

.st-open-btn,
.osis-detail-btn,
.osis-delete{
    padding:12px 18px;
    border-radius:999px;          /* bikin semua oval */
    font-weight:700;
    border:none;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    min-width:120px;              /* biar semua lebar sama */
    text-decoration:none;
    transition:.25s ease;
}

/* OPEN / DOWNLOAD */
.st-open-btn{
    background:linear-gradient(135deg,#3b82f6,#2563eb);
    color:white;
}
.st-open-btn:hover{
    transform:scale(1.06);
    box-shadow:0 0 25px #3b82f6aa;
}

/* DETAIL */
.osis-detail-btn{
    background:linear-gradient(135deg,#1e293b,#334155);
    color:white;
}
.osis-detail-btn:hover{
    background:linear-gradient(135deg,#334155,#475569);
    transform:scale(1.06);
}

/* DELETE */
.osis-delete{
    background:linear-gradient(135deg,#7f1d1d,#ef4444);
    color:white;
}
.osis-delete:hover{
    transform:scale(1.06);
    box-shadow:0 0 25px #ef4444aa;
}

.osis-card{
    margin-bottom:22px;
}

.osis-pagination{
    display:flex;
    justify-content:space-between;
    margin-top:25px;
}
.osis-pagination a{
    padding:10px 20px;
    background:#1e293b;
    border-radius:999px;
    color:white;
    text-decoration:none;
}

#md-deskripsi{
    max-height:200px;
    overflow-y:auto;
    overflow-x:hidden;
    word-wrap:break-word;
    white-space:normal;
}