:root {
    --reviews-bg:#0f1320;
    --reviews-bg-2:#101626;
    --reviews-surface:rgba(255,255,255,.07);
    --reviews-surface-strong:rgba(255,255,255,.10);
    --reviews-border:rgba(255,255,255,.16);
    --reviews-text:var(--text,#f3f6ff);
    --reviews-muted:var(--muted,#bac4e5);
    --reviews-blue:#78a6ff;
    --reviews-teal:#66e6d2;
    --reviews-green:#35d49f;
    --reviews-yellow:#ffd166;
    --reviews-shadow:0 18px 52px rgba(0,0,0,.30);
}
html[data-theme="light"] {
    --reviews-bg:#f7f8fd;
    --reviews-bg-2:#eef2ff;
    --reviews-surface:rgba(255,255,255,.80);
    --reviews-surface-strong:rgba(255,255,255,.96);
    --reviews-border:rgba(23,32,58,.12);
    --reviews-shadow:0 18px 45px rgba(23,32,58,.12);
}
*{box-sizing:border-box}
.reviews-body{
    min-height:100vh;margin:0;color:var(--reviews-text);
    background:
        radial-gradient(900px 700px at 8% -8%,rgba(77,111,214,.26),transparent 62%),
        radial-gradient(820px 620px at 100% 0%,rgba(42,139,145,.18),transparent 58%),
        linear-gradient(180deg,var(--reviews-bg),var(--reviews-bg-2));
    background-attachment:fixed
}
.reviews-shell{width:min(1120px,92%);margin:0 auto;padding:34px 0 80px}
.reviews-hero,.review-write-card,.review-card,.reviews-toolbar,.reviews-stats{
    border:1px solid var(--reviews-border);background:var(--reviews-surface);
    box-shadow:var(--reviews-shadow);backdrop-filter:blur(14px)
}
.reviews-hero{padding:clamp(24px,4vw,42px);border-radius:24px}
.reviews-eyebrow{display:block;margin-bottom:8px;color:var(--reviews-teal);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.reviews-hero h1,.review-write-card h1{margin:0;color:var(--reviews-text);font-size:clamp(34px,5vw,56px);line-height:1.08;letter-spacing:-.04em}
.reviews-hero p,.review-write-card>p{max-width:720px;margin:14px 0 0;color:var(--reviews-muted);line-height:1.7}
.reviews-hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:22px}
.reviews-actions{display:flex;flex-wrap:wrap;gap:10px}
.reviews-button{
    min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;
    border-radius:12px;border:1px solid var(--reviews-border);font-weight:850;text-decoration:none;cursor:pointer;font:inherit
}
.reviews-button.primary{color:#07162a;background:linear-gradient(180deg,#79dcca,#43c8b3);border-color:rgba(102,230,210,.46)}
.reviews-button.secondary{color:var(--reviews-text);background:var(--reviews-surface-strong)}
.reviews-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;margin-top:18px;border-radius:18px}
.review-stat{padding:20px;text-align:center;background:rgba(255,255,255,.025)}
.review-stat strong{display:block;color:var(--reviews-text);font-size:32px;line-height:1}
.review-stat span{display:block;margin-top:7px;color:var(--reviews-muted);font-size:12px;font-weight:800}
.review-average-stars{color:var(--reviews-yellow);letter-spacing:2px;font-size:16px}
.reviews-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding:13px 15px;border-radius:15px}
.reviews-toolbar label{color:var(--reviews-muted);font-size:12px;font-weight:850}
.reviews-toolbar select{margin-left:8px;min-height:38px;padding:0 34px 0 10px;color:var(--reviews-text);background:var(--reviews-surface-strong);border:1px solid var(--reviews-border);border-radius:10px}
.reviews-toolbar option{color:#10162a;background:#fff}
.reviews-feed{display:grid;gap:14px;margin-top:16px}
.review-card{padding:20px;border-radius:18px}
.review-card-head{display:flex;align-items:flex-start;gap:12px}
.review-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;color:#0c1830;background:linear-gradient(180deg,#83adff,#66e6d2);font-size:13px;font-weight:900}
.review-author{min-width:0}
.review-author strong{display:block;color:var(--reviews-text);overflow-wrap:anywhere}
.review-date{color:var(--reviews-muted);font-size:12px}
.review-stars{margin-left:auto;color:var(--reviews-yellow);letter-spacing:2px;white-space:nowrap;font-size:15px}
.review-message{margin:14px 0 0;color:var(--reviews-text);line-height:1.72;white-space:pre-wrap;overflow-wrap:anywhere}
.review-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-top:14px}
.review-photo{position:relative;overflow:hidden;min-height:140px;border-radius:12px;border:1px solid var(--reviews-border);background:rgba(255,255,255,.04)}
.review-photo img{width:100%;height:100%;min-height:140px;max-height:320px;object-fit:cover;display:block}
.review-pin{position:absolute;top:7px;right:7px;padding:5px 8px;color:#fff;background:rgba(0,0,0,.58);border:1px solid rgba(255,255,255,.20);border-radius:999px;cursor:pointer;font-size:11px;font-weight:850}
.reviews-empty{margin-top:16px;padding:34px 20px;text-align:center;border:1px solid var(--reviews-border);border-radius:18px;color:var(--reviews-muted);background:var(--reviews-surface)}
.reviews-load{display:flex;justify-content:center;margin-top:16px}
.reviews-posted{margin:16px 0 0;padding:12px 14px;border:1px solid rgba(53,212,159,.32);border-radius:12px;color:var(--reviews-green);background:rgba(53,212,159,.08);font-weight:800}
.reviews-posted[hidden]{display:none}
.review-write-wrap{width:min(760px,92%);margin:0 auto;padding:34px 0 80px}
.review-write-card{padding:clamp(22px,4vw,36px);border-radius:22px}
.review-write-card h1{font-size:clamp(30px,5vw,46px)}
.review-form-label{display:block;margin:22px 0 8px;color:var(--reviews-text);font-weight:850}
.review-star-picker{display:flex;align-items:center;gap:5px}
.review-star-button{padding:0;color:rgba(255,209,102,.30);background:transparent;border:0;cursor:pointer;font-size:38px;line-height:1;transition:transform .12s ease,color .12s ease}
.review-star-button:hover{transform:translateY(-1px) scale(1.05)}
.review-star-button.is-active{color:var(--reviews-yellow)}
.review-rating-text{margin-left:9px;color:var(--reviews-muted);font-size:13px;font-weight:800}
.review-write-card textarea{width:100%;min-height:180px;resize:vertical;padding:13px 14px;color:var(--reviews-text);background:rgba(255,255,255,.05);border:1px solid var(--reviews-border);border-radius:13px;font:inherit;line-height:1.6;outline:none}
.review-write-card textarea:focus{border-color:rgba(120,166,255,.52);box-shadow:0 0 0 3px rgba(120,166,255,.10)}
.review-uploader{padding:18px;text-align:center;border:1px dashed var(--reviews-border);border-radius:14px;background:rgba(255,255,255,.03)}
.review-uploader input{display:none}
.review-upload-link{color:var(--reviews-blue);text-decoration:underline;cursor:pointer;font-weight:850}
.review-upload-help{margin-top:5px;color:var(--reviews-muted);font-size:12px}
.review-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:12px}
.review-thumb{position:relative;overflow:hidden;aspect-ratio:1;border-radius:10px;border:1px solid var(--reviews-border)}
.review-thumb img{width:100%;height:100%;object-fit:cover}
.review-thumb button{position:absolute;top:5px;right:5px;width:26px;height:26px;border:0;border-radius:50%;color:#fff;background:rgba(0,0,0,.64);cursor:pointer}
.review-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.review-form-error{margin-top:12px;color:#ff8290;font-size:13px;font-weight:750}
@media(max-width:680px){
    .reviews-shell,.review-write-wrap{width:min(100% - 18px,1120px);padding-top:18px}
    .reviews-hero-row{align-items:stretch;flex-direction:column}
    .reviews-actions .reviews-button{width:100%}
    .reviews-toolbar{align-items:stretch;flex-direction:column}
    .reviews-toolbar select{width:100%;margin:6px 0 0}
    .review-card-head{flex-wrap:wrap}
    .review-stars{width:100%;margin-left:54px}
    .review-photos{grid-template-columns:1fr}
    .review-star-button{font-size:34px}
    .review-form-actions .reviews-button{width:100%}
}

/* TEM team review replies */
.review-replies{
    display:grid;
    gap:10px;
    margin:18px 0 0 clamp(24px,5vw,62px)
}
.review-reply{
    position:relative;
    padding:14px 15px;
    border:1px solid rgba(102,230,210,.24);
    border-left:3px solid var(--reviews-teal);
    border-radius:12px;
    background:
        linear-gradient(135deg,rgba(102,230,210,.07),rgba(120,166,255,.045)),
        rgba(255,255,255,.025)
}
.review-reply::before{
    content:"";
    position:absolute;
    left:-22px;
    top:-10px;
    width:18px;
    height:24px;
    border-left:1px solid rgba(102,230,210,.34);
    border-bottom:1px solid rgba(102,230,210,.34);
    border-bottom-left-radius:9px
}
.review-reply-head{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px 9px
}
.review-reply-author{
    color:var(--reviews-text);
    font-size:14px
}
.review-reply-badge{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:0 7px;
    border:1px solid rgba(102,230,210,.25);
    border-radius:999px;
    color:var(--reviews-teal);
    background:rgba(102,230,210,.08);
    font-size:10px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase
}
.review-reply-date{
    margin-left:auto;
    color:var(--reviews-muted);
    font-size:11px
}
.review-reply-message{
    margin:8px 0 0;
    color:var(--reviews-text);
    line-height:1.65;
    white-space:pre-wrap;
    overflow-wrap:anywhere
}
@media(max-width:680px){
    .review-replies{margin-left:18px}
    .review-reply{padding:12px 13px}
    .review-reply::before{left:-14px;width:10px}
    .review-reply-date{width:100%;margin-left:0}
}
