.vb-board{--vb-accent:#185fa5;--vb-accent-hover:#12508c;--vb-accent-bg:#e6f1fb;--vb-ink:#1c1c1a;--vb-muted:#5f5e5a;--vb-line:#e2e0d8;--vb-radius:12px;--vb-scale:1.5;max-width:960px;margin:0 auto;padding-top:calc(24px * var(--vb-scale));color:var(--vb-ink);font-size:calc(16px * var(--vb-scale))}
.vb-board *{box-sizing:border-box}
.vb-controls{display:flex;gap:calc(8px * var(--vb-scale));flex-wrap:wrap;margin-bottom:calc(8px * var(--vb-scale))}
.vb-search{flex:1;min-width:200px}
.vb-board input[type=search],.vb-board select{width:100%;padding:calc(9px * var(--vb-scale)) calc(12px * var(--vb-scale));border:1px solid var(--vb-line);border-radius:8px;font-size:calc(15px * var(--vb-scale));background:#fff;color:var(--vb-ink);font-family:inherit}
.vb-controls select{width:auto;min-width:150px}
.vb-board select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%235f5e5a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(13px * var(--vb-scale)) center;background-size:calc(11px * var(--vb-scale));padding-right:calc(34px * var(--vb-scale))}
.vb-board input:focus,.vb-board select:focus,.vb-board button:focus-visible{outline:2px solid var(--vb-accent);outline-offset:1px}
.vb-skillbar{display:flex;align-items:center;gap:calc(10px * var(--vb-scale)) calc(12px * var(--vb-scale));flex-wrap:wrap;margin-bottom:calc(14px * var(--vb-scale))}
.vb-skillbar-label{font-size:calc(13px * var(--vb-scale));color:var(--vb-muted)}
.vb-checks{display:flex;flex-wrap:wrap;gap:calc(8px * var(--vb-scale))}
.vb-check{display:inline-flex;align-items:center;gap:calc(6px * var(--vb-scale));border:1px solid var(--vb-line);border-radius:999px;padding:calc(6px * var(--vb-scale)) calc(12px * var(--vb-scale));font-size:calc(13px * var(--vb-scale));cursor:pointer;user-select:none;background:#fff;color:var(--vb-ink)}
.vb-check input{margin:0;cursor:pointer}
.vb-check:hover{border-color:var(--vb-accent)}
.vb-check:has(input:checked){background:var(--vb-accent-bg);border-color:var(--vb-accent);color:var(--vb-accent)}
.vb-check:focus-within{outline:2px solid var(--vb-accent);outline-offset:1px}
.vb-count{color:var(--vb-muted);font-size:calc(13px * var(--vb-scale));margin:0 0 calc(16px * var(--vb-scale))}
.vb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:calc(14px * var(--vb-scale))}
.vb-card{border:1px solid var(--vb-line);border-radius:var(--vb-radius);padding:calc(18px * var(--vb-scale)) calc(20px * var(--vb-scale));background:#fff;display:flex;flex-direction:column}
.vb-card-title{font-size:calc(18px * var(--vb-scale));margin:0 0 calc(6px * var(--vb-scale));line-height:1.3}
.vb-card-desc{color:var(--vb-muted);font-size:calc(14px * var(--vb-scale));line-height:1.55;margin:0 0 calc(14px * var(--vb-scale))}
.vb-card-desc.vb-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.vb-card-desc p{margin:0 0 calc(8px * var(--vb-scale))}
.vb-card-desc p:last-child{margin-bottom:0}
.vb-more{align-self:flex-start;background:none;border:none;color:var(--vb-accent);font-size:calc(13px * var(--vb-scale));cursor:pointer;padding:0;margin:0 0 calc(14px * var(--vb-scale));font-family:inherit;text-decoration:underline}
.vb-more:hover{color:var(--vb-accent-hover)}
.vb-modal{max-width:min(560px,92vw);width:100%;border:none;border-radius:var(--vb-radius);padding:0;background:#fff;color:var(--vb-ink);box-shadow:0 20px 60px rgba(0,0,0,.25)}
.vb-modal::backdrop{background:rgba(20,20,18,.5)}
.vb-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:calc(12px * var(--vb-scale));padding:calc(20px * var(--vb-scale)) calc(22px * var(--vb-scale)) 0}
.vb-modal-title{font-size:calc(20px * var(--vb-scale));margin:0;line-height:1.3}
.vb-modal-close{background:none;border:none;font-size:calc(24px * var(--vb-scale));line-height:1;color:var(--vb-muted);cursor:pointer;padding:0 calc(4px * var(--vb-scale));font-family:inherit}
.vb-modal-close:hover{color:var(--vb-ink)}
.vb-modal-tags{display:flex;flex-wrap:wrap;gap:calc(6px * var(--vb-scale));padding:calc(12px * var(--vb-scale)) calc(22px * var(--vb-scale)) 0}
.vb-modal-desc{padding:calc(12px * var(--vb-scale)) calc(22px * var(--vb-scale));font-size:calc(15px * var(--vb-scale));line-height:1.6;max-height:55vh;overflow:auto}
.vb-modal-desc p{margin:0 0 calc(10px * var(--vb-scale))}
.vb-modal-desc p:last-child{margin-bottom:0}
.vb-modal-foot{display:flex;flex-wrap:wrap;gap:calc(10px * var(--vb-scale));justify-content:flex-end;padding:calc(4px * var(--vb-scale)) calc(22px * var(--vb-scale)) calc(20px * var(--vb-scale))}
.vb-tags{display:flex;flex-wrap:wrap;gap:calc(6px * var(--vb-scale));margin-bottom:calc(16px * var(--vb-scale));margin-top:auto}
.vb-tag{font-size:calc(12px * var(--vb-scale));padding:calc(3px * var(--vb-scale)) calc(10px * var(--vb-scale));border-radius:999px;background:#f1efe8;color:#444441}
.vb-tag-skill{background:var(--vb-accent-bg);color:var(--vb-accent)}
.vb-tag-hours{background:#eee9fb;color:#534ab7}
.vb-tag-commit{background:#e7f4ec;color:#27632a}
.vb-btn{appearance:none;-webkit-appearance:none;border:1px solid var(--vb-accent);background:#fff;color:var(--vb-accent);font-size:calc(14px * var(--vb-scale));padding:calc(8px * var(--vb-scale)) calc(16px * var(--vb-scale));border-radius:8px;cursor:pointer;align-self:flex-start;font-family:inherit;line-height:1.2}
.vb-btn:hover{background:var(--vb-accent-bg)}
.vb-btn[disabled]{opacity:.6;cursor:default}
.vb-btn-primary{background:var(--vb-accent);color:#fff}
.vb-btn-primary:hover{background:var(--vb-accent-hover)}
.vb-interest-form{margin-top:calc(6px * var(--vb-scale));border-top:1px solid var(--vb-line);padding-top:calc(14px * var(--vb-scale));width:100%}
.vb-field{display:block;margin-bottom:calc(10px * var(--vb-scale))}
.vb-field span{display:block;font-size:calc(13px * var(--vb-scale));color:var(--vb-muted);margin-bottom:calc(4px * var(--vb-scale))}
.vb-field input{width:100%;padding:calc(8px * var(--vb-scale)) calc(12px * var(--vb-scale));border:1px solid var(--vb-line);border-radius:8px;font-size:calc(15px * var(--vb-scale));font-family:inherit;color:var(--vb-ink)}
.vb-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.vb-msg{font-size:calc(13px * var(--vb-scale));margin:calc(8px * var(--vb-scale)) 0 0;min-height:18px}
.vb-msg.is-ok{color:#27632a}
.vb-msg.is-err{color:#a32d2d}
.vb-empty{color:var(--vb-muted);font-size:calc(14px * var(--vb-scale))}
@media(max-width:520px){.vb-controls select{width:100%}}
