/* AR Student Portal v1.0.0 — profile, attendance, performance, fee.
   Colour values arrive as CSS vars (Elementor {{WRAPPER}} selectors, or an
   inline style on the root for the shortcode) and are consumed with fallbacks. */

.arsp-root{font-family:'Inter',Arial,sans-serif; color:#4B5578; font-size:16px; line-height:1.6; max-width:980px; margin:0 auto;}
.arsp-root *{box-sizing:border-box;}
.arsp-root h3{font-family:'Plus Jakarta Sans',Arial,sans-serif; color:#13183F; margin:0;}

.arsp-card{background:#fff; border:1px solid var(--arsp-bd, #E9E5DA); border-radius:var(--arsp-rad, 18px);
  padding:26px 28px; margin-bottom:22px; box-shadow:0 10px 30px rgba(10,8,59,.05);}
.arsp-card h3{font-size:20px; font-weight:800; letter-spacing:-.3px; margin-bottom:16px;}

/* Profile */
.arsp-profile{background:#fff; border:1px solid var(--arsp-bd, #E9E5DA); border-radius:var(--arsp-rad, 18px);
  overflow:hidden; margin-bottom:22px; box-shadow:0 14px 40px rgba(10,8,59,.08);}
.arsp-phead{display:flex; align-items:center; gap:18px; padding:28px;
  background:linear-gradient(120deg, var(--arsp-c1, #0A083B) 0%, var(--arsp-c2, #2C4A70) 100%);}
.arsp-avatar{flex:none; width:66px; height:66px; border-radius:50%; background:rgba(255,255,255,.12);
  border:2px solid var(--arsp-ac, #DB8927); color:#fff; font-family:'Plus Jakarta Sans',Arial,sans-serif;
  font-weight:800; font-size:24px; display:flex; align-items:center; justify-content:center;}
.arsp-pinfo h3{color:#fff; font-size:24px; font-weight:800; letter-spacing:-.3px; margin-bottom:7px;}
.arsp-chip{display:inline-block; background:var(--arsp-ac, #DB8927); color:#fff; font-family:'Plus Jakarta Sans',Arial,sans-serif;
  font-size:12.5px; font-weight:700; letter-spacing:.4px; padding:5px 13px; border-radius:999px;}
.arsp-fields{display:grid; grid-template-columns:repeat(3, 1fr); gap:18px 22px; padding:24px 28px;}
.arsp-field span{display:block; font-size:12px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; color:#8A93AD; margin-bottom:3px;}
.arsp-field b{color:#13183F; font-weight:600; font-size:15.5px; word-break:break-word;}

/* Stats */
.arsp-stats{display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-bottom:22px;}
.arsp-stat{background:#fff; border:1px solid var(--arsp-bd, #E9E5DA); border-radius:var(--arsp-rad, 18px);
  padding:20px 16px; text-align:center;}
.arsp-stat b{display:block; font-family:'Plus Jakarta Sans',Arial,sans-serif; font-size:25px; font-weight:800;
  color:#13183F; letter-spacing:-.4px; margin-bottom:2px;}
.arsp-stat span{font-size:13px; font-weight:600; color:#8A93AD;}
.arsp-bar{height:8px; background:#F1EFE7; border-radius:99px; margin-top:11px; overflow:hidden;}
.arsp-bar i{display:block; height:100%; background:var(--arsp-ac, #DB8927); border-radius:99px;}

/* Rows + tags */
.arsp-rows{display:flex; flex-direction:column;}
.arsp-row{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #F1EFE7;}
.arsp-row:last-child{border-bottom:none;}
.arsp-rdate{font-weight:600; color:#13183F; font-size:15.5px;}
.arsp-tag{flex:none; font-family:'Plus Jakarta Sans',Arial,sans-serif; font-size:12.5px; font-weight:700;
  padding:5px 13px; border-radius:999px;}
.arsp-tag.is-p{background:rgba(30,123,52,.1); color:var(--arsp-ok, #1E7B34);}
.arsp-tag.is-a{background:rgba(192,57,43,.09); color:var(--arsp-no, #C0392B);}
.arsp-tag.is-w{background:rgba(219,137,39,.14); color:#C1751F;}
.arsp-empty,.arsp-more{color:#8A93AD; font-size:14.5px; margin:4px 0 0;}
.arsp-note{background:#F7F6F2; font-size:15.5px;}

/* Performance table */
.arsp-tablewrap{overflow-x:auto;}
.arsp-table{width:100%; border-collapse:collapse; min-width:560px;}
.arsp-table th{font-family:'Plus Jakarta Sans',Arial,sans-serif; font-size:12px; font-weight:700; letter-spacing:1.2px;
  text-transform:uppercase; color:#8A93AD; text-align:left; padding:0 10px 10px 0;}
.arsp-table td{padding:11px 10px 11px 0; border-bottom:1px solid #F1EFE7; font-size:15px; vertical-align:top;}
.arsp-table td b{color:#13183F;}
.arsp-table tr:last-child td{border-bottom:none;}
.arsp-grade{display:inline-block; background:var(--arsp-ac, #DB8927); color:#fff; font-family:'Plus Jakarta Sans',Arial,sans-serif;
  font-weight:800; font-size:13px; padding:3px 10px; border-radius:8px;}
.arsp-fee-note{font-size:15px;}

/* Gate (not logged in) */
.arsp-gate{text-align:center; padding:42px 30px;}
.arsp-gate h3{font-size:24px; margin-bottom:8px;}
.arsp-gate p{max-width:440px; margin:0 auto 22px;}
.arsp-btn{display:inline-block; font-family:'Plus Jakarta Sans',Arial,sans-serif; font-weight:700; font-size:15.5px;
  text-decoration:none; background:var(--arsp-ac, #DB8927); color:#fff; padding:14px 34px; border-radius:12px; transition:background .25s ease;}
.arsp-btn:hover{background:#C1751F;}

/* Entrance animation */
.arsp-anim .arsp-block{animation:arspUp var(--arsp-asp, 650ms) ease both;}
.arsp-anim .arsp-block:nth-child(2){animation-delay:.08s;}
.arsp-anim .arsp-block:nth-child(3){animation-delay:.16s;}
.arsp-anim .arsp-block:nth-child(4){animation-delay:.24s;}
.arsp-anim .arsp-block:nth-child(5){animation-delay:.32s;}
@keyframes arspUp{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:none;}}

@media (max-width:767px){
  .arsp-fields{grid-template-columns:1fr 1fr;}
  .arsp-stats{grid-template-columns:1fr 1fr;}
  .arsp-card{padding:22px 18px;}
  .arsp-phead{padding:22px 18px;}
  .arsp-fields{padding:20px 18px;}
}
@media (max-width:480px){
  .arsp-fields{grid-template-columns:1fr;}
  .arsp-pinfo h3{font-size:20px;}
  .arsp-avatar{width:56px; height:56px; font-size:20px;}
}
@media (prefers-reduced-motion: reduce){
  .arsp-anim .arsp-block{animation:none;}
}

/* Homework & assignments (v1.3.0) */
.arsp-tag.is-n{background:rgba(90,98,120,.12); color:var(--arsp-muted, #5A6278);}
.arsp-asrow{display:flex; gap:14px; padding:15px 2px; border-top:1px solid var(--arsp-line, #E7E5DC);}
.arsp-asrow:first-of-type{border-top:0;}
.arsp-ascheck{flex:none; padding-top:2px; cursor:pointer;}
.arsp-ascheck input{position:absolute; opacity:0; width:0; height:0;}
.arsp-ascheck span{display:block; width:24px; height:24px; border-radius:7px; border:2px solid var(--arsp-line, #CBD0DE); background:#fff; position:relative; transition:background .18s, border-color .18s;}
.arsp-ascheck input:checked + span{background:var(--arsp-ok, #1E7B34); border-color:var(--arsp-ok, #1E7B34);}
.arsp-ascheck input:checked + span::after{content:''; position:absolute; left:7px; top:3px; width:6px; height:11px; border:solid #fff; border-width:0 3px 3px 0; transform:rotate(45deg);}
.arsp-asmain{flex:1; min-width:0;}
.arsp-asrow-top{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.arsp-asrow-top b{font-family:'Plus Jakarta Sans',Arial,sans-serif; font-size:16.5px; color:var(--arsp-ink, #1A1A28);}
.arsp-asrow.is-done .arsp-asrow-top b{text-decoration:line-through; opacity:.55;}
.arsp-asdet{margin:6px 0 0; font-size:14.5px; line-height:1.65; color:var(--arsp-muted, #5A6278); overflow-wrap:anywhere;}
.arsp-asmeta{margin:6px 0 0; font-size:13px; font-weight:600; color:var(--arsp-ac, #DB8927);}
