/* বই স্টোর (student dashboard). Uses the variables from style.css. */
.sh-bar{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.sh-tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.sh-tabs button,.sh-cartbtn,.sh-chips button{border:1px solid var(--hairline);background:#fff;border-radius:999px;padding:.45rem .95rem;font:inherit;font-weight:600;font-size:.88rem;cursor:pointer;color:var(--text-secondary);transition:var(--transition)}
.sh-tabs button.on,.sh-cartbtn.on,.sh-chips button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.sh-cartbtn b{background:#fff;color:var(--accent);border-radius:999px;padding:0 .45rem;margin-left:.2rem;font-size:.78rem}
.sh-filters{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;margin-bottom:.8rem}
.sh-filters .input{margin:0;min-width:0}
.sh-chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.9rem;scrollbar-width:thin}
.sh-chips button{white-space:nowrap;padding:.32rem .8rem;font-size:.82rem}
.sh-chips small{opacity:.7}
/* ---- book tile: compact, soft, with a 3-D looking cover ---- */
.sh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:1.15rem}
.sh-card{position:relative;background:#fff;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(15,23,42,.06);
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 22px -10px rgba(30,41,59,.18);transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s ease}
.sh-card:hover{transform:translateY(-5px);box-shadow:0 2px 4px rgba(15,23,42,.05),0 22px 38px -14px rgba(79,70,229,.32)}
.sh-card.soldout .sh-cover{filter:grayscale(.75);opacity:.7}
.sh-cover{position:relative;display:block;aspect-ratio:1/1.08;background:radial-gradient(circle at 30% 18%,#fff,#eef1fb 72%);overflow:hidden}
.sh-img{position:absolute;inset:16px 24px;background:center/contain no-repeat;filter:drop-shadow(0 10px 14px rgba(15,23,42,.28));transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.sh-card:hover .sh-img,.sh-card:hover .sh-cover .sh-ph{transform:scale(1.06) rotate(-1deg)}
.sh-dcover .sh-img,.sh-lcover .sh-img{inset:0;background-size:cover;filter:none}
.sh-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.8rem;text-align:center;color:#fff;background:linear-gradient(145deg,#4f46e5,#0ea5e9)}
.sh-ph.kind-d{background:linear-gradient(145deg,#0f766e,#22c55e)}
.sh-ph span{font-size:3rem;font-weight:800;line-height:1;font-family:var(--font-display)}
.sh-ph small{font-size:.74rem;opacity:.9}
/* a cover-less book looks like a real book: rounded edge, spine shadow */
.sh-cover .sh-ph{inset:16px 26px;border-radius:4px 10px 10px 4px;box-shadow:0 12px 18px -6px rgba(15,23,42,.4),inset 7px 0 9px rgba(0,0,0,.16);transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.sh-badges{position:absolute;top:.6rem;left:.6rem;display:flex;flex-direction:column;gap:.3rem;align-items:flex-start;z-index:2}
.sh-badges.inline{position:static;flex-direction:row;margin-bottom:.4rem}
.sh-b{font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;color:#fff;background:#475569;box-shadow:0 2px 6px rgba(15,23,42,.2)}
.sh-b.sale{background:linear-gradient(135deg,#f43f5e,#be123c)}.sh-b.ebook{background:linear-gradient(135deg,#14b8a6,#0f766e)}.sh-b.hard{background:#475569}.sh-b.out{background:#111827}.sh-b.low{background:linear-gradient(135deg,#f59e0b,#b45309)}
.sh-info{padding:.75rem .9rem .95rem;display:flex;flex-direction:column;gap:.2rem;flex:1}
.sh-title{font-weight:600;color:var(--text-primary);text-decoration:none;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-card .sh-title{font-size:.92rem;min-height:2.7em}
.sh-card .sh-title:hover{color:var(--accent)}
.sh-author{font-size:.76rem;color:var(--muted)}
.sh-card .sh-author{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-price{display:flex;gap:.45rem;align-items:baseline;margin-top:auto;padding-top:.35rem}
.sh-price b{font-size:1.1rem;color:var(--accent);letter-spacing:-.01em}.sh-price b.free{color:var(--success)}
.sh-price s{font-size:.78rem;color:var(--text-tertiary)}
.sh-price.big b{font-size:1.6rem}
.sh-card .sh-add{width:100%;margin-top:.55rem;padding:.5rem .6rem;font-size:.82rem;font-weight:700;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-soft-border);box-shadow:none}
.sh-card .sh-add:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 6px 14px rgba(79,70,229,.3)}
.sh-card .sh-add:disabled{background:#f1f5f9;color:var(--text-tertiary);border-color:transparent}
.sh-empty{text-align:center;padding:2.5rem 1rem;color:var(--muted)}
.sh-empty div{font-size:3rem}
.sh-back{border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0;margin-bottom:.8rem}
.sh-detail{display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:1.6rem;align-items:start}
.sh-dcover{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);background:var(--accent-soft)}
.sh-dmain h2{margin:.1rem 0 .3rem;font-family:var(--font-display)}
.sh-stock{font-size:.85rem;font-weight:600;margin:.2rem 0 .9rem}.sh-stock.ok{color:var(--success)}.sh-stock.out{color:var(--danger)}
.sh-buy{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.sh-qty{display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:999px;background:#fff;overflow:hidden}
.sh-qty button{border:0;background:none;width:34px;height:34px;font-size:1.1rem;cursor:pointer;color:var(--accent)}
.sh-qty b{min-width:30px;text-align:center}
.sh-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem 1rem;margin:1.2rem 0}
.sh-meta div{border-bottom:1px solid var(--hairline);padding-bottom:.35rem}.sh-meta dt{font-size:.74rem;color:var(--muted)}.sh-meta dd{margin:0;font-weight:600}
.sh-desc{line-height:1.75;color:var(--text-secondary)}
.sh-note,.sh-hint{font-size:.82rem;color:var(--muted)}
.sh-sample{font-weight:600}
.sh-h3{margin:1.8rem 0 .8rem}
.sh-cart{display:grid;grid-template-columns:1fr 340px;gap:1.2rem;align-items:start}
.sh-lines{display:flex;flex-direction:column;gap:.7rem}
.sh-line{display:flex;gap:.8rem;align-items:flex-start;background:#fff;border:1px solid var(--hairline);border-radius:14px;padding:.7rem}
.sh-line.bad{border-color:var(--danger);background:var(--danger-soft)}
.sh-lcover{position:relative;width:58px;aspect-ratio:3/4;border-radius:8px;overflow:hidden;flex:none;background:var(--accent-soft)}
.sh-lcover.small{width:44px}
.sh-lcover .sh-ph span{font-size:1.4rem}.sh-lcover .sh-ph small{display:none}
.sh-ltext{flex:1;min-width:0}
.sh-lrow{display:flex;gap:.8rem;align-items:center;margin-top:.4rem}
.sh-rm{border:0;background:none;color:var(--danger);cursor:pointer;font:inherit;font-size:.82rem;padding:0}
.sh-lsum{font-weight:700;white-space:nowrap}
.sh-problem{color:var(--danger);font-size:.82rem;font-weight:600}
.sh-sumbox{background:#fff;border:1px solid var(--hairline);border-radius:16px;padding:1.1rem;position:sticky;top:1rem;box-shadow:var(--shadow-md)}
.sh-sumbox h3,.sh-form h3{margin:0 0 .8rem}
.sh-row{display:flex;justify-content:space-between;gap:.8rem;padding:.3rem 0;font-size:.92rem}.sh-row.small{font-size:.82rem;color:var(--text-secondary)}
.sh-row.total{border-top:1px solid var(--hairline);margin-top:.4rem;padding-top:.6rem;font-size:1.1rem}.sh-row.total b{color:var(--accent)}
.sh-wide{width:100%;margin-top:.6rem}
.sh-area{display:flex;gap:1rem;flex-wrap:wrap;margin:.3rem 0 .7rem;font-size:.88rem}.sh-area label{display:flex;gap:.35rem;align-items:center;cursor:pointer}
.sh-form{padding:1.2rem}
.sh-field{margin-bottom:.8rem}.sh-field label{display:block;font-weight:600;font-size:.85rem;margin-bottom:.25rem}
.sh-field .input{width:100%;margin:0}.sh-field .input.bad{border-color:var(--danger)}
.sh-fe{color:var(--danger);font-size:.8rem;min-height:0}
.sh-pay{display:flex;gap:.7rem;align-items:flex-start;border:1px solid var(--hairline);border-radius:12px;padding:.75rem .9rem;margin-bottom:.5rem;cursor:pointer}
.sh-pay:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.sh-pay span{display:flex;flex-direction:column}.sh-pay small{color:var(--muted)}
.sh-orders{display:flex;flex-direction:column;gap:1rem}
.sh-order{background:#fff;border:1px solid var(--hairline);border-radius:16px;padding:1rem 1.1rem;box-shadow:var(--shadow-md)}
.sh-order header{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem}
.sh-tags{display:flex;gap:.4rem;flex-wrap:wrap}
.sh-st,.sh-pt{font-size:.74rem;font-weight:700;padding:.2rem .65rem;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.sh-st.st-delivered,.sh-pt.ok{background:var(--success-soft);color:var(--success)}
.sh-st.st-cancelled{background:var(--danger-soft);color:var(--danger)}
.sh-pt.warn,.sh-st.st-pending{background:var(--warning-soft);color:var(--warning)}
.sh-steps{display:flex;list-style:none;padding:0;margin:.2rem 0 1rem}
.sh-steps li{flex:1;text-align:center;font-size:.72rem;color:var(--text-tertiary);position:relative}
.sh-steps li i{display:block;width:14px;height:14px;border-radius:50%;background:var(--hairline);margin:0 auto .3rem;position:relative;z-index:1}
.sh-steps li::before{content:"";position:absolute;top:6px;left:-50%;width:100%;height:2px;background:var(--hairline)}
.sh-steps li:first-child::before{display:none}
.sh-steps li.done{color:var(--text-primary)}.sh-steps li.done i,.sh-steps li.done::before{background:var(--accent)}
.sh-steps li.now i{box-shadow:0 0 0 4px var(--accent-soft)}
.sh-cancelled{color:var(--danger);font-weight:600;margin-bottom:.6rem}
.sh-oi{display:flex;gap:.7rem;align-items:center;padding:.4rem 0;border-top:1px solid var(--hairline)}.sh-oi:first-child{border-top:0}
.sh-dl{padding:.4rem .8rem;font-size:.82rem;white-space:nowrap}
.sh-addr,.sh-courier{font-size:.84rem;color:var(--text-secondary);margin-top:.6rem;background:#f7f9fc;border-radius:10px;padding:.5rem .7rem}
.sh-order footer{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}
.sh-otot{display:flex;gap:1rem;font-size:.88rem;color:var(--text-secondary)}.sh-otot b{color:var(--text-primary);font-size:1.05rem}
.sh-oacts{display:flex;gap:.5rem}
@media(max-width:860px){.sh-cart{grid-template-columns:1fr}.sh-sumbox{position:static}.sh-detail{grid-template-columns:1fr}.sh-dcover{max-width:260px}}
@media(max-width:560px){.sh-filters{grid-template-columns:1fr 1fr}.sh-filters #shQ{grid-column:1/-1}}
/* phones: two tiles per row */
@media(max-width:680px){.sh-grid{grid-template-columns:repeat(2,1fr);gap:.7rem}.sh-card{border-radius:14px}.sh-info{padding:.6rem .65rem .8rem}.sh-cover .sh-ph,.sh-img{inset:12px 18px}}
