/* VS Student Forum 1.1 — "Students Community" design (navy / cream / gold). Scoped to #vsf so the theme cannot restyle it. */
html:has(#vsf),body:has(#vsf){overflow-x:clip}
body.vsf-page .vst-hero,body:has(#vsf) .vst-hero,
body:has(#vsf) .pntrst_main_before_after,body:has(#vsf) .pntrst_main_before_after ~ p,
body:has(#vsf) .sharedaddy,body:has(#vsf) .jp-relatedposts{display:none!important}
body:has(#vsf) #main,body:has(#vsf) main#vst-content,body:has(#vsf) .vst-builder-wrap{padding-top:0!important;margin-top:0!important;padding-bottom:0!important}
body:has(#vsf) .vst-prose,body:has(#vsf) .entry-content{max-width:none!important}

#vsf{
  --navy:#0a1221;--navy2:#0f1a2e;--navy3:#162442;--cream:#f6ecd4;--paper:#fbf5e6;--card:#fffaf0;--sand:#f1e4bf;--ivory:#fffdf7;
  --gold:#c9962e;--gold2:#dcb158;--gold3:#e9cf8d;--bronze:#a67a1f;
  --ink:#1b1712;--ink2:#3a2f1f;--muted:#6f6249;--line:rgba(166,122,31,.22);--line2:rgba(166,122,31,.14);
  --title:#13254a;
  --brand:'Cinzel','Cormorant Garamond',Georgia,serif;
  --serif:'Cormorant Garamond',Georgia,serif;
  --text:'EB Garamond',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  width:100vw;max-width:100vw;position:relative;margin:0 calc(50% - 50vw)!important;padding:0;
  background:var(--paper);color:var(--ink);font-family:var(--text);font-size:16.5px;line-height:1.5;text-align:left;min-height:70vh
}
#vsf *,#vsf *::before,#vsf *::after{box-sizing:border-box}
#vsf ul,#vsf ol{list-style:none;margin:0;padding:0}
#vsf li{margin:0;padding:0}
#vsf li::before,#vsf li::after{content:none!important;display:none!important}
#vsf h1,#vsf h2,#vsf h3,#vsf h4{font-family:var(--serif);font-weight:600;letter-spacing:0;text-transform:none;margin:0;padding:0;line-height:1.2;color:inherit;border:0;background:none}
#vsf h1::after,#vsf h2::before,#vsf h2::after,#vsf h3::before,#vsf h3::after{content:none!important}
#vsf p{margin:0;padding:0}
#vsf a{text-decoration:none!important;box-shadow:none;border-bottom:0;color:inherit}
#vsf img{max-width:100%;height:auto;border:0;border-radius:0;box-shadow:none;margin:0}
#vsf button,#vsf input,#vsf select,#vsf textarea{font-family:var(--text);font-size:16px;letter-spacing:0;text-transform:none;line-height:1.35;margin:0;box-shadow:none;min-height:0}
#vsf button{background:none;border:0;padding:0;color:inherit;cursor:pointer;border-radius:0}
#vsf button:focus-visible,#vsf a:focus-visible,#vsf select:focus-visible,#vsf input:focus-visible,#vsf .vsf-row:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#vsf .vsf-i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#vsf .vsf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#vsf [hidden]{display:none!important}

/* ---------------------------------------------------------------- buttons */
#vsf .vsf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border-radius:6px;font:600 14.5px/1.2 var(--sans);cursor:pointer;border:1px solid transparent;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
#vsf .vsf-btn.gold,#vsf .vsf-btn-gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:var(--navy);border-color:var(--bronze);box-shadow:0 3px 10px rgba(201,150,46,.28)}
#vsf .vsf-btn.gold:hover,#vsf .vsf-btn-gold:hover{background:linear-gradient(180deg,var(--gold3),var(--gold2))}
#vsf .vsf-btn[disabled]{opacity:.6;cursor:wait}
#vsf .vsf-btn.line,#vsf .vsf-btn-line{background:var(--ivory);color:var(--navy);border-color:rgba(10,18,33,.25)}
#vsf .vsf-btn.line:hover,#vsf .vsf-btn-line:hover{border-color:var(--gold);color:var(--bronze)}
#vsf .vsf-tb{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:var(--ivory);color:var(--ink2);font:500 13px/1.2 var(--sans);cursor:pointer}
#vsf .vsf-tb .vsf-i{width:15px;height:15px}
#vsf .vsf-tb:hover{border-color:var(--gold);color:var(--bronze)}
#vsf .vsf-tb.mod{border-style:dashed}
#vsf .vsf-tb.accept.on{background:#e4f3e7;border-color:#7fbf8f;color:#1f6b35}

/* ------------------------------------------------------------------ gate */
#vsf .vsf-eyebrow{display:block;font:500 11.5px/1.4 var(--sans);letter-spacing:3px;text-transform:uppercase;color:var(--gold2);margin-bottom:8px}
#vsf .vsf-gate{padding:90px 20px;background:radial-gradient(ellipse at 30% 0,#1d2f55 0,transparent 60%),linear-gradient(180deg,var(--navy),var(--navy2));min-height:60vh;display:flex;align-items:center;justify-content:center}
#vsf .vsf-gate-card{max-width:620px;text-align:center;color:var(--cream);padding:40px 34px;border:1px solid rgba(201,150,46,.45);border-radius:14px;background:rgba(22,36,66,.55)}
#vsf .vsf-gate-card h1{font-size:clamp(30px,4vw,42px);font-weight:500;color:var(--cream);margin-bottom:12px}
#vsf .vsf-gate-card p{color:rgba(246,236,212,.85);margin-bottom:24px;font-size:17px}
#vsf .vsf-gate-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ---------------------------------------------------------------- banner */
#vsf .vsf-banner{position:relative;display:flex;align-items:center;min-height:150px;padding:14px 28px;overflow:hidden;color:var(--cream);
  background:
    linear-gradient(90deg,var(--navy) 0%,rgba(10,18,33,.96) 52%,rgba(10,18,33,.55) 68%,rgba(10,18,33,0) 82%),
    var(--vsf-art) right center/auto 100% no-repeat,
    radial-gradient(1px 1px at 12% 30%,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 27% 70%,rgba(255,255,255,.5),transparent),
    radial-gradient(1px 1px at 44% 22%,rgba(255,255,255,.6),transparent),radial-gradient(1.5px 1.5px at 58% 64%,rgba(233,207,141,.7),transparent),
    radial-gradient(1px 1px at 36% 48%,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 6% 82%,rgba(255,255,255,.5),transparent),
    radial-gradient(ellipse at 40% 0,#1b2c52 0,transparent 70%),var(--navy);
  border-bottom:1px solid rgba(201,150,46,.55)}
#vsf .vsf-brand{display:flex;align-items:center;gap:16px;padding-right:30px;flex:none}
#vsf .vsf-emblem{width:96px;height:auto;filter:drop-shadow(0 0 14px rgba(220,177,88,.35))}
#vsf .vsf-brand-n{font:600 38px/1 var(--brand);letter-spacing:1.5px;color:var(--gold2);background:linear-gradient(180deg,#f3dc9d,#c9962e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#vsf .vsf-brand-s{font:500 14.5px/1.3 var(--brand);letter-spacing:1.6px;text-transform:uppercase;color:var(--cream);margin-top:8px;max-width:330px;text-align:center}
#vsf .vsf-brand-t{font:500 10.5px/1.3 var(--sans);letter-spacing:1.4px;text-transform:uppercase;color:rgba(246,236,212,.85);margin-top:9px;text-align:center}
#vsf .vsf-bt{position:relative;padding-left:28px;border-left:1px solid rgba(201,150,46,.7);max-width:470px}
#vsf .vsf-bt::before{content:"";position:absolute;left:-4px;top:50%;width:7px;height:7px;background:var(--gold);transform:translateY(-50%) rotate(45deg)}
#vsf .vsf-bt h1{font:600 40px/1.05 var(--serif);color:var(--cream);letter-spacing:.3px}
#vsf .vsf-bt-l{font:500 20px/1.3 var(--serif);color:var(--cream);margin-top:6px;letter-spacing:.6px}
#vsf .vsf-bt-q{font:italic 400 16px/1.35 var(--text);color:var(--gold3);margin-top:6px}

/* ---------------------------------------------------------------- top nav */
#vsf .vsf-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:10px 22px;background:linear-gradient(180deg,#0e1830,#0a1221);border-bottom:1px solid rgba(201,150,46,.35);color:var(--cream)}
body.admin-bar #vsf .vsf-top{top:32px}
#vsf .vsf-burger{display:flex;align-items:center;justify-content:flex-start;width:48px;height:38px;color:var(--cream);border-right:1px solid rgba(246,236,212,.15)}
#vsf .vsf-burger .vsf-i{width:24px;height:24px}
#vsf .vsf-links{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
#vsf .vsf-links::-webkit-scrollbar{display:none}
#vsf .vsf-tl{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:5px;font:400 15px/1.2 var(--text);color:var(--cream)!important;white-space:nowrap;border:1px solid transparent}
#vsf .vsf-tl .vsf-i{width:20px;height:20px;color:var(--cream)}
#vsf .vsf-tl:hover{background:rgba(246,236,212,.07)}
#vsf .vsf-tl.on{background:linear-gradient(180deg,rgba(201,150,46,.38),rgba(166,122,31,.28));border-color:rgba(220,177,88,.6);color:var(--gold3)!important}
#vsf .vsf-tl.on .vsf-i{color:var(--gold2)}
#vsf .vsf-search{display:flex;align-items:center;gap:8px;background:var(--ivory);border-radius:5px;padding:0 12px;width:250px;flex:0 1 250px;color:#555;margin:0}
#vsf .vsf-search input{background:transparent;border:0;outline:0;color:var(--ink);padding:9px 0;width:100%;font:400 14px/1.2 var(--sans)}
#vsf .vsf-bell-wrap{position:relative;flex:none}
#vsf .vsf-bell{position:relative;display:flex;padding:6px;color:var(--cream)}
#vsf .vsf-bell .vsf-i{width:26px;height:26px}
#vsf .vsf-bell-n{position:absolute;top:-2px;right:-4px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#d0342c;color:#fff;font:600 11px/19px var(--sans);text-align:center}
#vsf .vsf-me{display:flex;align-items:center;gap:10px;flex:none;color:var(--cream)}
#vsf .vsf-me b{display:block;font:500 14.5px/1.2 var(--text)}
#vsf .vsf-me small{display:block;font:400 12.5px/1.2 var(--text);color:rgba(246,236,212,.75)}

/* dropdowns */
#vsf .vsf-drop{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:200px;background:var(--ivory);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px rgba(10,18,33,.22);padding:6px;text-align:left}
#vsf .vsf-bell-menu{width:360px;max-width:calc(100vw - 24px);padding:0;overflow:hidden}
#vsf .vsf-drop-h{padding:12px 16px;font:600 20px/1.2 var(--serif);color:var(--title);border-bottom:1px solid var(--line2)}
#vsf .vsf-drop-e{padding:16px;color:var(--muted);font-size:15px}
#vsf .vsf-drop-all{display:block;padding:11px 16px;text-align:center;font:500 13.5px/1.2 var(--sans);color:var(--bronze)!important;border-top:1px solid var(--line2);background:var(--paper)}
#vsf .vsf-more-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:6px;font:400 14px/1.3 var(--sans);color:var(--ink2)}
#vsf .vsf-more-menu button:hover{background:var(--sand)}
#vsf .vsf-note-i{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line2);font-size:15px;line-height:1.35;color:var(--ink2)}
#vsf .vsf-note-i:hover{background:var(--paper)}
#vsf .vsf-note-i em{font-style:normal;font-weight:600;color:var(--title)}
#vsf .vsf-note-i small{display:block;margin-top:3px;font:400 12px/1.3 var(--sans);color:var(--muted)}
#vsf .vsf-note-d{flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:transparent}
#vsf .vsf-note-i.unread .vsf-note-d{background:#d0342c}
#vsf .vsf-note-i.unread{background:#fff6e2}

/* ---------------------------------------------------------------- columns */
#vsf .vsf-cols{display:grid;grid-template-columns:250px minmax(0,1fr) 340px;align-items:start;min-height:70vh}
#vsf .vsf-center{min-width:0;padding:16px 18px 40px 20px;display:flex;flex-direction:column;gap:14px}
#vsf .vsf-right{min-width:0;padding:16px 16px 40px 0;display:flex;flex-direction:column;gap:14px}

/* left sidebar */
#vsf .vsf-left{align-self:stretch;background:radial-gradient(ellipse at 0 0,#16264a 0,transparent 60%),linear-gradient(180deg,#0f1a33,#0a1221);color:var(--cream);padding:14px 14px 30px}
#vsf .vsf-lg{padding:8px 0 12px;border-bottom:1px solid rgba(246,236,212,.13)}
#vsf .vsf-lg:last-of-type{border-bottom:0}
#vsf .vsf-lg h4{font:500 12.5px/1.2 var(--text);letter-spacing:1.3px;text-transform:uppercase;color:var(--gold2);padding:8px 10px}
#vsf .vsf-ll{display:flex;align-items:center;gap:12px;padding:6px 10px;margin:1px 0;border-radius:6px;color:var(--cream)!important;font:400 15px/1.25 var(--text);border:1px solid transparent}
#vsf .vsf-ll:hover{background:rgba(246,236,212,.07)}
#vsf .vsf-ll.on{background:linear-gradient(180deg,rgba(201,150,46,.55),rgba(166,122,31,.45));border-color:rgba(220,177,88,.55);color:#fff8e6!important}
#vsf .vsf-lg:first-child .vsf-ll{padding:7px 10px}
#vsf .vsf-ll-ic{flex:none;display:flex;align-items:center;justify-content:center;width:24px;color:var(--cream)}
#vsf .vsf-ll-ic .vsf-i{width:20px;height:20px}
#vsf .vsf-ll-ic.round{width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0cf7c,#b9821d);color:var(--navy);border:1px solid #e9cf8d}
#vsf .vsf-ll-ic.round .vsf-i{width:17px;height:17px}
#vsf .vsf-ll-t{flex:1 1 auto;min-width:0}
#vsf .vsf-ll-t small{display:block;font:400 14px/1.2 var(--text);color:rgba(246,236,212,.85)}
#vsf .vsf-cnt{flex:none;min-width:22px;padding:1px 7px;border-radius:10px;background:var(--gold);color:var(--navy);font:600 11px/17px var(--sans);text-align:center}
#vsf .vsf-pref{display:flex;gap:8px;align-items:flex-start;margin:16px 10px 0;font:400 13px/1.35 var(--sans);color:rgba(246,236,212,.7);cursor:pointer}
#vsf .vsf-pref input{margin-top:2px;accent-color:var(--gold)}
#vsf .vsf-scrim{display:none}

/* ---------------------------------------------------------- action cards */
#vsf .vsf-acards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
#vsf .vsf-acard{display:flex;align-items:center;gap:12px;padding:16px 14px;border-radius:8px;border:1px solid;min-height:92px;transition:transform .15s,box-shadow .15s}
#vsf .vsf-acard:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(10,18,33,.1)}
#vsf .vsf-acard b{display:block;font:600 19px/1.2 var(--serif);color:var(--ink)}
#vsf .vsf-acard small{display:block;font:400 14px/1.35 var(--text);color:var(--ink2);margin-top:5px}
#vsf .vsf-acard-ic{flex:none;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;color:#fff}
#vsf .vsf-acard-ic .vsf-i{width:24px;height:24px}
#vsf .c-gold{background:#fbeccb;border-color:#efd398}#vsf .c-gold .vsf-acard-ic{background:radial-gradient(circle at 35% 30%,#a8701e,#6e4410);color:#fbe3a6}
#vsf .c-blue{background:#e5eefb;border-color:#c5d6f1}#vsf .c-blue .vsf-acard-ic{background:radial-gradient(circle at 35% 30%,#2c4f8f,#132a57)}
#vsf .c-green{background:#e6f2e6;border-color:#c5dfc6}#vsf .c-green .vsf-acard-ic{background:radial-gradient(circle at 35% 30%,#2a6a45,#103a24)}
#vsf .c-rose{background:#fae6e6;border-color:#efc8c8}#vsf .c-rose .vsf-acard-ic{background:radial-gradient(circle at 35% 30%,#94283a,#5b1220)}
#vsf .c-navy{background:#e9e7f1;border-color:#cdc8de}#vsf .c-navy .vsf-acard-ic{background:radial-gradient(circle at 35% 30%,#2b2f55,#0a1221);color:var(--gold3)}

/* ----------------------------------------------------------------- panels */
#vsf .vsf-panel{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px rgba(10,18,33,.04)}
#vsf .vsf-panel-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 14px 12px 16px;border-bottom:1px solid var(--line2)}
#vsf .vsf-panel-h h2{font:600 25px/1.15 var(--serif);color:var(--ink)}
#vsf .vsf-panel-h p{font-size:14.5px;color:var(--muted);margin-top:2px}
#vsf .vsf-ptools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#vsf .vsf-sel{position:relative;display:inline-flex;margin:0}
#vsf .vsf-sel select{appearance:none;-webkit-appearance:none;height:36px;padding:0 34px 0 14px;border:1px solid rgba(10,18,33,.18);border-radius:5px;background:var(--ivory) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231b1712' stroke-width='1.8'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") right 12px center no-repeat;color:var(--ink);font:400 14.5px/1 var(--text);cursor:pointer;max-width:190px}
#vsf .vsf-sel.dark select{background-color:var(--navy);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23f6ecd4' stroke-width='1.8'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");color:var(--cream);border-color:var(--navy)}
#vsf .vsf-viewbtn{display:flex;align-items:center;justify-content:center;width:40px;height:36px;border:1px solid rgba(10,18,33,.18);border-radius:5px;background:var(--ivory);color:var(--ink)}
#vsf .vsf-viewbtn.on{background:var(--navy);color:var(--cream)}

/* --------------------------------------------------------------- topic row */
#vsf .vsf-row{display:flex;gap:22px;padding:18px 18px 12px;border-bottom:1px solid var(--line2);cursor:pointer;transition:background .15s}
#vsf .vsf-row:last-child{border-bottom:0}
#vsf .vsf-row:hover{background:#fff6e4}
#vsf .vsf-row.pinned{background:linear-gradient(90deg,rgba(220,177,88,.12),transparent 40%)}
#vsf .is-hidden{opacity:.6}
#vsf .vsf-row-b{flex:1 1 auto;min-width:0}
#vsf .vsf-row-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
#vsf .vsf-row-st{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:none}
#vsf .vsf-who{min-width:0}
#vsf .vsf-who b{font:500 16.5px/1.3 var(--text);color:var(--title);margin-right:8px}
#vsf .vsf-who small{display:block;font:400 15px/1.3 var(--text);color:var(--muted);margin-top:2px;white-space:pre-wrap}
#vsf .vsf-role{display:inline-flex;align-items:center;gap:4px;padding:1px 10px;border-radius:12px;font:400 14px/1.45 var(--text);vertical-align:1px}
#vsf .vsf-role .vsf-i{width:13px;height:13px}
#vsf .r-student{background:#dde8f8;color:#1f3e78}
#vsf .r-mentor{background:#f9e0a1;color:#5b3f08}
#vsf .r-mentor .vsf-i{fill:#c9962e;stroke:#8a6413}
#vsf .r-teacher{background:#1d2f55;color:#f6ecd4}
#vsf .r-scholar{background:#e9def5;color:#4c2a7a}
#vsf .r-author{background:#f7dccf;color:#83311a}
#vsf .vsf-st{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;font:400 14px/1.2 var(--text);white-space:nowrap;border:1px solid transparent}
#vsf .vsf-st .vsf-i{width:15px;height:15px}
#vsf .s-ok{background:#e1f2e3;color:#1e6a34;border-color:#b9dfbf}
#vsf .s-dis{background:#fff0dc;color:#b55f0e;border-color:#f3cf9b}
#vsf .s-res{background:#e1eafa;color:#1f3e78;border-color:#bfd0ee}
#vsf .s-chart{background:#e3f1e5;color:#21573a;border-color:#c0dcc6}
#vsf .s-ann{background:#1d2f55;color:var(--gold3)}
#vsf .s-new{background:#f3eee2;color:#6f6249;border-color:#e2d8c0}
#vsf .s-pin{background:#fbeccb;color:#8a6413;border-color:#efd398}
#vsf .s-hid{background:#fbe1e1;color:#8c2323}
#vsf .vsf-row h3{display:block;margin-top:8px;font:600 22px/1.2 var(--serif);color:var(--title)}
#vsf .vsf-row h3 a{color:var(--title)!important}
#vsf .vsf-row h3 a:hover{color:var(--bronze)!important}
#vsf .vsf-dot{display:inline-block;vertical-align:middle;margin-left:8px;width:9px;height:9px;border-radius:50%;background:#d0342c}
#vsf .vsf-in{font:400 13px/1.3 var(--sans);color:var(--bronze);margin-top:2px}
#vsf .vsf-ex{margin-top:4px;color:var(--ink2);font-size:16.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#vsf .vsf-row-x{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:10px}
#vsf .vsf-row-x:empty{display:none}
#vsf .vsf-tags{display:flex;flex-wrap:wrap;gap:8px}
#vsf .vsf-chip{padding:3px 14px;border-radius:14px;background:#f8dcc7;color:#4a2a14!important;font:400 14.5px/1.4 var(--text)}
#vsf .vsf-chip:hover{background:#f1c9ab}
#vsf .vsf-row-f{display:flex;align-items:center;gap:26px;margin-top:12px;flex-wrap:wrap;row-gap:8px}
#vsf .vsf-grow{flex:1 1 auto}
#vsf .vsf-stat{display:inline-flex;align-items:center;gap:9px;font:400 15px/1.2 var(--text);color:var(--ink2)}
#vsf .vsf-stat .vsf-i{width:20px;height:20px;color:var(--ink)}
#vsf button.vsf-stat:hover:not([disabled]){color:var(--bronze)}
#vsf .vsf-stat.like.on{color:var(--bronze)}
#vsf .vsf-stat.like.on .vsf-i{fill:#e9cf8d;color:var(--bronze)}
#vsf .vsf-stat[disabled]{cursor:default}
#vsf .vsf-save{display:inline-flex;align-items:center;gap:8px;font:400 15px/1.2 var(--text);color:var(--ink2)}
#vsf .vsf-save .vsf-i{width:20px;height:20px;color:var(--ink)}
#vsf .vsf-save.on .vsf-i{fill:var(--gold);color:var(--bronze)}
#vsf .vsf-more-wrap{position:relative}
#vsf .vsf-more{display:flex;padding:4px;color:var(--ink)}
#vsf .vsf-more .vsf-i{width:20px;height:20px;fill:currentColor}

/* compact list */
#vsf .vsf-list.compact .vsf-row{padding:12px 16px;gap:14px}
#vsf .vsf-list.compact .vsf-row>.vsf-av{width:40px!important;height:40px!important;font-size:16px!important}
#vsf .vsf-list.compact .vsf-ex,#vsf .vsf-list.compact .vsf-row-x,#vsf .vsf-list.compact .vsf-in{display:none}
#vsf .vsf-list.compact .vsf-row h3{font-size:19px;margin-top:4px}
#vsf .vsf-list.compact .vsf-row-f{margin-top:6px}

/* avatars */
#vsf .vsf-av{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#2a6a7a,#1d4a5a);color:#fff;font-family:var(--serif);font-weight:600;border:2px solid #f0e2bf;box-shadow:0 1px 3px rgba(10,18,33,.18)}
#vsf .vsf-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
#vsf .vsf-av.more{width:40px;height:40px;background:#efe5cf;color:var(--ink2);font:500 14px/1 var(--sans)}
#vsf .vsf-me .vsf-av{border-color:rgba(246,236,212,.6)}

/* files */
#vsf .vsf-files{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
#vsf .vsf-files.sm{margin-top:0}
#vsf .vsf-doc{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 9px;border:1px solid #d7cdb6;border-radius:6px;background:#fff;max-width:100%}
#vsf .vsf-doc:hover{border-color:var(--gold)}
#vsf .vsf-doc b{display:block;font:400 15px/1.25 var(--text);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}
#vsf .vsf-doc small{display:block;font:400 12px/1.2 var(--sans);color:var(--muted)}
#vsf .vsf-doc-ic{flex:none;display:flex;align-items:flex-end;justify-content:center;width:30px;height:34px;border-radius:3px;background:#5f6f86;color:#fff;font:700 9.5px/1 var(--sans);padding-bottom:5px}
#vsf .vsf-doc-ic.pdf{background:#d0342c}
#vsf .vsf-img{display:block;border-radius:6px;overflow:hidden;border:1px solid var(--line);max-width:340px}
#vsf .vsf-img img{display:block;width:100%;max-height:420px;object-fit:contain;background:#fff}

/* ----------------------------------------------------------- right column */
#vsf .vsf-box{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
#vsf .vsf-box-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
#vsf .vsf-box-h h3{display:flex;align-items:center;gap:10px;font:600 21px/1.2 var(--serif);color:var(--ink)}
#vsf .vsf-box-h h3 .vsf-i{width:22px;height:22px;color:var(--bronze)}
#vsf .vsf-box-h a{font:400 14px/1.2 var(--text);color:#1f3e78!important;text-decoration:underline!important}
#vsf .vsf-course{display:flex;gap:14px;align-items:center;padding:9px 0;border-top:1px solid var(--line2)}
#vsf .vsf-course:first-child{border-top:0}
#vsf .vsf-course-ic{flex:none;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#1d3566,#0a1221);color:var(--gold2);border:3px solid #d9b25e;box-shadow:0 0 0 1px #8a6413}
#vsf .vsf-course:nth-child(3n+2) .vsf-course-ic{background:radial-gradient(circle at 35% 30%,#24479a,#0f2050)}
#vsf .vsf-course:nth-child(3n) .vsf-course-ic{background:radial-gradient(circle at 35% 30%,#8f1f22,#4c0d10)}
#vsf .vsf-course-ic .vsf-i{width:26px;height:26px}
#vsf .vsf-course-b{flex:1 1 auto;min-width:0}
#vsf .vsf-course-b b{display:block;font:500 17px/1.25 var(--text);color:var(--ink)}
#vsf .vsf-course-b small{display:block;font:400 14.5px/1.25 var(--text);color:var(--ink2)}
#vsf .vsf-course-s{display:block;font:400 13px/1.3 var(--sans);color:var(--muted);margin-top:6px}
#vsf .vsf-prog{display:flex;align-items:center;gap:12px;margin-top:6px}
#vsf .vsf-bar{flex:1 1 auto;height:7px;border-radius:4px;background:#e4ddcd;overflow:hidden}
#vsf .vsf-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#1d3a78,#13285a)}
#vsf .vsf-prog em{flex:none;font:400 14.5px/1 var(--text);font-style:normal;color:var(--ink2);min-width:36px;text-align:right}
#vsf .vsf-faces{display:flex;flex-wrap:wrap;gap:6px}
#vsf .vsf-muted{color:var(--muted);font-size:15px}
#vsf .vsf-rules{background:#fdf3dd}
#vsf .vsf-rules li{display:flex;gap:10px;align-items:flex-start;padding:4px 0;font:400 15px/1.35 var(--text);color:var(--ink2)}
#vsf .vsf-rules li .vsf-i{flex:none;width:18px;height:18px;margin-top:1px;fill:#7a5a17;stroke:#fff;stroke-width:2}
#vsf .vsf-lockbox{position:relative;overflow:hidden;display:flex;gap:18px;align-items:center;padding:20px 18px;border-radius:8px;color:var(--cream);background:radial-gradient(ellipse at 90% 80%,rgba(201,150,46,.18),transparent 55%),linear-gradient(135deg,#13234a,#0a1221);border:1px solid rgba(201,150,46,.45)}
#vsf .vsf-lock{flex:none;display:flex;color:var(--gold2)}
#vsf .vsf-lock .vsf-i{width:48px;height:48px;fill:rgba(220,177,88,.25);stroke-width:1.6}
#vsf .vsf-lockbox h3{font:600 23px/1.2 var(--serif);color:var(--gold2)}
#vsf .vsf-lockbox p{font:400 14.5px/1.35 var(--text);color:rgba(246,236,212,.9);margin-top:6px}

/* ------------------------------------------------------- topic & replies */
#vsf .vsf-op{padding:16px 20px 14px}
#vsf .vsf-op-who{display:flex;gap:16px;align-items:center;min-width:0}
#vsf .vsf-op h2{font:600 30px/1.15 var(--serif);color:var(--title);margin-top:14px}
#vsf .vsf-back{display:inline-flex;align-items:center;gap:6px;font:400 13.5px/1.2 var(--sans);color:var(--bronze)!important;margin:0 0 12px}
#vsf .vsf-panel>.vsf-back{margin:14px 16px 0}
#vsf .vsf-back .vsf-i{width:15px;height:15px}
#vsf .vsf-body-t{margin-top:10px;font-size:17.5px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
#vsf .vsf-body-t p{margin:0 0 .8em}
#vsf .vsf-body-t p:last-child{margin-bottom:0}
#vsf .vsf-body-t a{color:#1f3e78!important;text-decoration:underline!important}
#vsf .vsf-op .vsf-tags{margin-top:12px}
#vsf .vsf-op .vsf-row-f{padding-top:12px;border-top:1px solid var(--line2);gap:14px 20px}
#vsf .vsf-jump{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;background:#e1f2e3;border:1px solid #b9dfbf;color:#1e6a34!important;font:500 14px/1.3 var(--sans)}
#vsf .vsf-reply{display:flex;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line2)}
#vsf .vsf-reply.staff{background:linear-gradient(90deg,rgba(220,177,88,.10),transparent 50%)}
#vsf .vsf-reply.accepted{background:#f1f9f2;box-shadow:inset 3px 0 0 #3a8f52}
#vsf .vsf-reply .vsf-body-t{font-size:17px}
#vsf .vsf-reply .vsf-row-f{gap:12px}
#vsf .vsf-acc{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;font:600 12.5px/1.2 var(--sans);color:#1e6a34;text-transform:uppercase;letter-spacing:.8px}
#vsf .vsf-note{margin:14px 16px;padding:11px 14px;border-radius:8px;background:#fdf3dd;border:1px solid #efd398;color:var(--ink2);font-size:15.5px}

/* ---------------------------------------------------------------- compose */
#vsf .vsf-compose{padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px;margin:0}
#vsf .vsf-compose.reply{background:var(--paper);border-top:1px solid var(--line2);border-radius:0 0 8px 8px}
#vsf .vsf-compose h3{display:flex;align-items:center;gap:8px;font:600 21px/1.2 var(--serif);color:var(--title)}
#vsf .vsf-f{display:flex;flex-direction:column;gap:6px}
#vsf .vsf-f>label{font:600 13px/1.2 var(--sans);color:var(--ink2);letter-spacing:.2px}
#vsf .vsf-compose input[type=text],#vsf .vsf-compose select,#vsf .vsf-compose textarea{width:100%;padding:10px 12px;border:1px solid #d7cdb6;border-radius:6px;background:#fff;color:var(--ink);font:400 16.5px/1.45 var(--text);outline:0}
#vsf .vsf-compose select{height:44px}
#vsf .vsf-compose textarea{resize:vertical;min-height:120px}
#vsf .vsf-compose input:focus,#vsf .vsf-compose select:focus,#vsf .vsf-compose textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(220,177,88,.22)}
#vsf .vsf-hint{font:400 12.5px/1.35 var(--sans);color:var(--muted)}
#vsf .vsf-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
#vsf .vsf-kind{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid;cursor:pointer;opacity:.75;margin:0}
#vsf .vsf-kind input{position:absolute;opacity:0;pointer-events:none}
#vsf .vsf-kind .vsf-acard-ic{width:38px;height:38px}
#vsf .vsf-kind .vsf-acard-ic .vsf-i{width:19px;height:19px}
#vsf .vsf-kind b{display:block;font:600 16.5px/1.2 var(--serif);color:var(--ink)}
#vsf .vsf-kind small{display:block;font:400 12.5px/1.3 var(--sans);color:var(--ink2);margin-top:2px}
#vsf .vsf-kind.on{opacity:1;box-shadow:0 0 0 2px var(--navy)}
#vsf .vsf-kind:focus-within{outline:2px solid var(--gold);outline-offset:2px}
#vsf .vsf-up{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
#vsf .vsf-file-in{position:absolute;width:1px;height:1px;opacity:0}
#vsf .vsf-up label.vsf-tb{cursor:pointer;margin:0}
#vsf .vsf-upchips{display:flex;flex-wrap:wrap;gap:8px;width:100%}
#vsf .vsf-upchips:empty{display:none}
#vsf .vsf-upchip{display:inline-flex;align-items:center;gap:8px;padding:5px 6px 5px 12px;border-radius:16px;background:var(--sand);font:400 13px/1.2 var(--sans);color:var(--ink2)}
#vsf .vsf-upchip.busy{padding-right:12px;opacity:.75}
#vsf .vsf-upchip button{width:22px;height:22px;border-radius:50%;background:rgba(10,18,33,.08);font:600 15px/1 var(--sans)}
#vsf .vsf-foot{display:flex;gap:10px;flex-wrap:wrap}
#vsf .vsf-msg{font:400 14px/1.4 var(--sans)}
#vsf .vsf-msg.bad{color:#a32222}

/* misc */
#vsf .vsf-loading{padding:40px 20px;text-align:center;color:var(--muted);font-style:italic}
#vsf .vsf-loading.sm{padding:14px}
#vsf .vsf-empty{padding:46px 24px;text-align:center}
#vsf .vsf-empty h3{font:600 24px/1.2 var(--serif);color:var(--title);margin-bottom:6px}
#vsf .vsf-empty p{color:var(--muted);margin-bottom:14px}
#vsf .vsf-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;font:400 14px/1.2 var(--sans);color:var(--muted)}
#vsf .vsf-noscript{padding:40px;text-align:center}
#vsf .vsf-notes .vsf-note-i{font-size:16px;padding:14px 18px}
.vsf-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:100002;background:#0a1221;color:#f6ecd4;padding:11px 20px;border-radius:8px;border:1px solid rgba(201,150,46,.6);font:500 14px/1.35 'Inter',system-ui,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:opacity .4s;max-width:calc(100vw - 32px)}
.vsf-toast.bad{background:#7a1c1c}
.vsf-toast.out{opacity:0}

/* -------------------------------------------------------------- responsive */
@media (min-width:901px){#vsf .vsf-burger{pointer-events:none}}
@media (max-width:1380px){
  #vsf .vsf-cols{grid-template-columns:240px minmax(0,1fr) 300px}
  #vsf .vsf-brand-n{font-size:32px}
  #vsf .vsf-tl{padding:8px 9px;font-size:14.5px}
  #vsf .vsf-search{flex-basis:200px;width:200px}
  #vsf .vsf-acards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1180px){
  #vsf .vsf-cols{grid-template-columns:240px minmax(0,1fr)}
  #vsf .vsf-right{grid-column:2;padding:0 18px 40px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  #vsf .vsf-center{padding-bottom:16px}
  #vsf .vsf-me>div{display:none}
  #vsf .vsf-bt{max-width:none}
}
@media (max-width:900px){
  #vsf .vsf-banner{flex-direction:column;align-items:flex-start;gap:12px;padding:16px 18px;min-height:0;
    background:linear-gradient(180deg,rgba(10,18,33,.82),rgba(10,18,33,.95)),var(--vsf-art) right center/cover no-repeat,var(--navy)}
  #vsf .vsf-brand{padding-right:0;gap:12px}
  #vsf .vsf-emblem{width:58px}
  #vsf .vsf-brand-n{font-size:25px}
  #vsf .vsf-brand-s{font-size:11px;text-align:left;margin-top:5px}
  #vsf .vsf-brand-t{display:none}
  #vsf .vsf-bt{padding-left:0;border-left:0}
  #vsf .vsf-bt::before{display:none}
  #vsf .vsf-bt h1{font-size:30px}
  #vsf .vsf-bt-l{font-size:17px}
  #vsf .vsf-bt-q{font-size:14.5px}
  #vsf .vsf-top{flex-wrap:wrap;padding:8px 12px;gap:8px 10px;position:relative;top:auto!important}
  #vsf .vsf-links{order:5;flex:1 1 100%;margin:0 -12px;padding:0 12px}
  #vsf .vsf-search{flex:1 1 140px;width:auto}
  #vsf .vsf-cols{display:block}
  #vsf .vsf-left{position:fixed;z-index:100001;top:0;bottom:0;left:0;width:290px;max-width:86vw;overflow-y:auto;transform:translateX(-105%);transition:transform .25s;box-shadow:10px 0 40px rgba(0,0,0,.35)}
  #vsf .vsf-app.side-open .vsf-left{transform:none}
  #vsf .vsf-app.side-open .vsf-scrim{display:block;position:fixed;inset:0;z-index:100000;background:rgba(10,18,33,.55)}
  #vsf .vsf-center{padding:14px 12px 16px}
  #vsf .vsf-right{padding:0 12px 30px;display:flex}
}
@media (max-width:600px){
  #vsf .vsf-acards{gap:10px}
  #vsf .vsf-acard{flex-direction:column;align-items:flex-start;padding:12px;min-height:0;gap:8px}
  #vsf .vsf-acard-ic{width:40px;height:40px}
  #vsf .vsf-acard b{font-size:17px}
  #vsf .vsf-acard small{font-size:13.5px}
  #vsf .vsf-panel-h{padding:12px}
  #vsf .vsf-panel-h h2{font-size:22px}
  #vsf .vsf-ptools{width:100%;gap:8px}
  #vsf .vsf-sel{flex:1 1 40%}
  #vsf .vsf-sel select{width:100%;max-width:none}
  #vsf .vsf-row{gap:12px;padding:14px 12px 10px}
  #vsf .vsf-row>.vsf-av{width:42px!important;height:42px!important;font-size:17px!important}
  #vsf .vsf-row-top{flex-direction:column;gap:6px}
  #vsf .vsf-row-st{justify-content:flex-start}
  #vsf .vsf-row h3{font-size:20px}
  #vsf .vsf-ex{font-size:16px;-webkit-line-clamp:3}
  #vsf .vsf-row .vsf-row-f{gap:18px;flex-wrap:nowrap}
  #vsf .vsf-row .vsf-w{display:none}
  #vsf .vsf-doc b{max-width:200px}
  #vsf .vsf-op{padding:14px}
  #vsf .vsf-op h2{font-size:25px}
  #vsf .vsf-reply{padding:14px 12px;gap:10px}
  #vsf .vsf-reply>.vsf-av{width:36px!important;height:36px!important;font-size:15px!important}
  #vsf .vsf-me{display:none}
  #vsf .vsf-gate{padding:50px 16px}
  #vsf .vsf-gate-card{padding:30px 20px}
}

/* theme link styles must not recolour or underline forum buttons */
#vsf#vsf a.vsf-btn,#vsf#vsf a.vsf-btn:hover,#vsf#vsf a.vsf-btn:focus{text-decoration:none!important}
#vsf#vsf a.vsf-btn.gold,#vsf#vsf a.vsf-btn-gold,#vsf#vsf a.vsf-btn.gold:hover,#vsf#vsf a.vsf-btn-gold:hover{color:#0a1221!important;box-shadow:0 3px 10px rgba(201,150,46,.28)}
#vsf#vsf a.vsf-btn.line,#vsf#vsf a.vsf-btn-line,#vsf#vsf a.vsf-btn.line:hover,#vsf#vsf a.vsf-btn-line:hover{color:#0a1221!important}
#vsf#vsf .vsf-gate a.vsf-btn-line{background:transparent;color:#f6ecd4!important;border-color:rgba(246,236,212,.5)}
#vsf#vsf .vsf-gate a.vsf-btn-line:hover{border-color:#dcb158;color:#dcb158!important}
#vsf#vsf .vsf-gate a.vsf-btn{padding:13px 26px;font-size:15px}
#vsf#vsf .vsf-gate-note{margin-top:18px;font-size:14.5px;color:rgba(246,236,212,.7)}
#vsf#vsf .vsf-gate-note a{color:#dcb158!important;text-decoration:underline!important}
