.tsvm-wrap{--tsv-green:#10a75c;--tsv-dark:#0e2219;--tsv-line:#dce8e0;--tsv-text:#143025;color:var(--tsv-text);font-family:inherit;max-width:1240px;margin:20px auto 56px;padding:0 16px;box-sizing:border-box}
.tsvm-wrap *, .tsvm-wrap *:before,.tsvm-wrap *:after{box-sizing:border-box}
.tsvm-hero{background:linear-gradient(130deg,#0b1712 0%,#112f21 75%,#087941 100%);color:white;padding:46px clamp(22px,5vw,66px);border-bottom:6px solid var(--tsv-green);border-radius:12px 12px 0 0;box-shadow:0 8px 24px rgba(0,0,0,.11)}
.tsvm-hero .tsvm-kicker{font-size:13px;letter-spacing:.19em;text-transform:uppercase;color:#57e898;font-weight:800}
.tsvm-hero h1{color:#fff;font-size:clamp(30px,5vw,52px);line-height:1.1;font-weight:850;margin:12px 0 14px;text-transform:uppercase}
.tsvm-hero p{color:#e7f5eb;max-width:730px;font-size:clamp(16px,2vw,19px);line-height:1.55;margin:0}
.tsvm-layout{background:#fbfdfb;padding:clamp(18px,3vw,36px);border:1px solid #e1e9e3;border-top:0;border-radius:0 0 12px 12px}
.tsvm-section{margin:0 0 42px;scroll-margin-top:90px}
.tsvm-section>h2{font-size:clamp(23px,2.8vw,30px);font-weight:800;letter-spacing:-.02em;color:#0d2718;margin:0 0 15px;padding-bottom:10px;border-bottom:2px solid #ccebd8}
.tsvm-section>p{font-size:16px;line-height:1.55;margin:8px 0 18px}
.tsvm-empty{color:#536e5e;font-style:italic;padding:18px;background:#f1f7f3;border-radius:8px}
.tsvm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.tsvm-card{background:white;border:1px solid var(--tsv-line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 20px rgba(12,40,23,.06);min-height:100%}
.tsvm-card-thumb{aspect-ratio:4/3;background:linear-gradient(180deg,#f1f7f3,#e3efe7);display:flex;align-items:center;justify-content:center;padding:16px;border-bottom:1px solid var(--tsv-line)}
.tsvm-thumb{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px}
.tsvm-card-main{padding:18px;display:flex;flex-direction:column;gap:12px;flex:1}
.tsvm-badge{display:inline-flex;align-self:flex-start;padding:5px 10px;border-radius:999px;background:#e6f6ed;color:#116439;font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.tsvm-card h3{font-size:18px;line-height:1.3;color:#0b2516;margin:0;overflow-wrap:anywhere}
.tsvm-meta{font-size:14px;line-height:1.5;color:#4f695a;margin:0}
.tsvm-card audio,.tsvm-card video{width:100%;min-width:0;border-radius:10px;background:#101b13}
.tsvm-action,.tsvm-password button{display:inline-block!important;background:#0c7843!important;color:white!important;border:0!important;border-radius:8px!important;text-align:center;font-size:14px!important;line-height:1.25;padding:12px 18px!important;font-weight:750;text-decoration:none!important;cursor:pointer}
.tsvm-action:hover,.tsvm-password button:hover{background:#06492a!important;color:#fff!important}
.tsvm-card>.tsvm-action{display:block!important;margin:0 18px 18px}
.tsvm-album-grid{align-items:start}
.tsvm-album-card .tsvm-card-main{gap:14px}
.tsvm-password{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.tsvm-password label{font-weight:600;flex:1 1 100%;font-size:14px}
.tsvm-password input{display:block!important;width:100%!important;margin-top:5px!important;border:1px solid #91b6a0!important;background:#fff!important;padding:12px!important;border-radius:8px!important;color:#133424!important}
.tsvm-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tsvm-photo{background:#eef5f0;border:1px solid #e0ebe3;border-radius:10px;overflow:hidden}
.tsvm-photo img{display:block;width:100%;height:145px;object-fit:cover;background:#dce9e1}
.tsvm-photo div{padding:10px;display:flex;gap:8px;flex-direction:column}
.tsvm-photo strong{font-size:13px;overflow-wrap:anywhere}
.tsvm-photo a{font-size:14px;font-weight:700;color:#12683b;text-decoration:none}
.tsvm-photo a:hover{text-decoration:underline}
.tsvm-error{border-left:3px solid #b00020;padding:8px 12px;background:#fff2f4;color:#751427;font-size:14px;border-radius:6px;margin:0}
@media(max-width:700px){.tsvm-wrap{margin-top:12px;padding:0 8px}.tsvm-layout{padding:18px 14px}.tsvm-hero{padding:30px 20px}.tsvm-grid{grid-template-columns:1fr 1fr}.tsvm-card-main{padding:14px}.tsvm-card>.tsvm-action{margin:0 14px 14px;padding:10px!important}}
@media(max-width:500px){.tsvm-grid{grid-template-columns:1fr}.tsvm-password label{flex-basis:100%}}
