/* =========================================================
   PROJECTS WORLD V2
   Page-native Project DNA workspace — local preview only.
   ========================================================= */

.pwv2{
    position:relative;
}

.pwv2-head{
    display:grid;
    grid-template-columns:1fr minmax(300px,.68fr);
    gap:42px;
    align-items:end;
    margin-bottom:20px;
}
.pwv2-head span{
    color:rgb(var(--world-accent)/.86);
    font:700 .43rem/1 monospace;
    letter-spacing:.1em;
}
.pwv2-head h2{
    margin:10px 0 0;
    font-size:clamp(2.2rem,4vw,4.4rem);
    line-height:.92;
    letter-spacing:-.055em;
}
.pwv2-head p{
    margin:0;
    color:var(--ws-muted);
    font-size:.61rem;
    line-height:1.68;
}

.pwv2-warning{
    margin-bottom:12px;
    padding:11px 13px;
    border:1px solid rgba(255,172,104,.15);
    border-radius:16px;
    color:rgba(255,213,174,.64);
    background:
        linear-gradient(145deg,rgba(255,172,104,.035),rgba(255,255,255,.008));
    font:650 .39rem/1.55 monospace;
}

.pwv2-layout{
    display:grid;
    grid-template-columns:minmax(300px,360px) minmax(0,1fr);
    gap:10px;
    align-items:start;
}

.pwv2-index,
.pwv2-detail{
    border:1px solid rgba(255,255,255,.09);
    border-radius:26px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.065),transparent 36%),
        linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.012)),
        rgba(12,24,36,.72);
    box-shadow:
        0 24px 66px rgba(0,0,0,.14),
        inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter:blur(20px) saturate(160%);
}

.pwv2-index{
    position:sticky;
    top:112px;
    max-height:calc(100vh - 132px);
    overflow:hidden;
    display:grid;
    grid-template-rows:auto auto 1fr auto;
}

.pwv2-index-head{
    padding:15px;
    border-bottom:1px solid rgba(255,255,255,.07);
}
.pwv2-index-head>span{
    color:rgb(var(--world-accent)/.72);
    font:700 .39rem/1 monospace;
    letter-spacing:.08em;
}
.pwv2-index-head strong{
    display:block;
    margin-top:8px;
    color:#fff;
    font-size:.95rem;
}

.pwv2-search{
    margin:12px 12px 0;
    min-height:43px;
    padding:0 12px;
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    background:rgba(255,255,255,.018);
}
.pwv2-search i{
    color:rgb(var(--world-accent)/.72);
    font-style:normal;
}
.pwv2-search input{
    width:100%;
    border:0;
    outline:0;
    color:#fff;
    background:transparent;
    font-size:.56rem;
}
.pwv2-search input::placeholder{color:rgba(255,255,255,.24)}

.pwv2-filters{
    padding:9px 12px 8px;
    display:flex;
    gap:6px;
    overflow:auto;
    scrollbar-width:none;
}
.pwv2-filters::-webkit-scrollbar{display:none}
.pwv2-filter{
    flex:0 0 auto;
    min-height:31px;
    padding:0 9px;
    border:1px solid rgba(255,255,255,.07);
    border-radius:999px;
    color:rgba(255,255,255,.35);
    background:rgba(255,255,255,.012);
    cursor:pointer;
    font:700 .36rem/1 monospace;
    letter-spacing:.05em;
}
.pwv2-filter:hover,
.pwv2-filter.is-active{
    color:#fff;
    border-color:rgb(var(--world-accent)/.22);
    background:rgb(var(--world-accent)/.045);
}

.pwv2-list{
    min-height:0;
    overflow:auto;
    padding:0 9px 9px;
    display:grid;
    gap:6px;
    align-content:start;
}
.pwv2-project{
    width:100%;
    min-height:72px;
    padding:10px 11px;
    display:grid;
    gap:5px;
    border:1px solid rgba(255,255,255,.055);
    border-radius:15px;
    color:inherit;
    background:rgba(255,255,255,.01);
    text-align:left;
    cursor:pointer;
    transition:
        transform .18s var(--ws-ease),
        border-color .18s ease,
        background .18s ease;
}
.pwv2-project:hover,
.pwv2-project.is-active{
    transform:translateX(2px);
    border-color:rgb(var(--world-accent)/.22);
    background:
        linear-gradient(135deg,rgb(var(--world-accent)/.05),rgb(var(--world-accent-2)/.025));
}
.pwv2-project span{
    color:rgb(var(--world-accent)/.55);
    font:700 .34rem/1 monospace;
    letter-spacing:.07em;
}
.pwv2-project strong{
    color:#fff;
    font-size:.6rem;
    line-height:1.25;
}
.pwv2-project small{
    color:rgba(255,255,255,.28);
    font-size:.43rem;
    line-height:1.35;
}

.pwv2-index-foot{
    padding:10px 12px;
    display:flex;
    justify-content:space-between;
    gap:10px;
    border-top:1px solid rgba(255,255,255,.06);
    color:var(--ws-dim);
    font:650 .36rem/1 monospace;
}

.pwv2-detail{
    min-height:720px;
    padding:20px;
}

.pwv2-top{
    display:grid;
    grid-template-columns:1fr auto;
    gap:20px;
    align-items:start;
    padding-bottom:17px;
    border-bottom:1px solid rgba(255,255,255,.07);
}
.pwv2-top>div>span{
    color:rgb(var(--world-accent)/.78);
    font:700 .4rem/1 monospace;
    letter-spacing:.09em;
}
.pwv2-top h3{
    margin:12px 0 8px;
    max-width:900px;
    color:#fff;
    font-size:clamp(2.1rem,4vw,4.5rem);
    line-height:.9;
    letter-spacing:-.058em;
}
.pwv2-top p{
    max-width:900px;
    margin:0;
    color:rgba(238,246,255,.50);
    font-size:.61rem;
    line-height:1.7;
}

.pwv2-source-state{
    padding:8px 10px;
    border:1px solid rgba(255,172,104,.15);
    border-radius:999px;
    color:rgba(255,205,160,.60);
    background:rgba(255,172,104,.025);
    font:700 .35rem/1 monospace;
    letter-spacing:.06em;
    white-space:nowrap;
}

.pwv2-metrics{
    margin-top:12px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:7px;
}
.pwv2-metric{
    min-height:88px;
    padding:11px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    border:1px solid rgba(255,255,255,.065);
    border-radius:15px;
    background:rgba(255,255,255,.012);
}
.pwv2-metric span{
    color:var(--ws-dim);
    font:650 .34rem/1 monospace;
    letter-spacing:.06em;
}
.pwv2-metric strong{
    color:#fff;
    font-size:.58rem;
    line-height:1.3;
    word-break:break-word;
}

.pwv2-section{
    margin-top:10px;
    padding:15px;
    border:1px solid rgba(255,255,255,.065);
    border-radius:18px;
    background:
        linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.006));
}
.pwv2-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.pwv2-section-head span{
    color:rgb(var(--world-accent)/.72);
    font:700 .38rem/1 monospace;
    letter-spacing:.075em;
}
.pwv2-section-head small{
    color:var(--ws-dim);
    font:600 .35rem/1 monospace;
}

.pwv2-chips{
    margin-top:11px;
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.pwv2-chip{
    min-height:31px;
    padding:0 9px;
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(255,255,255,.07);
    border-radius:999px;
    color:rgba(255,255,255,.52);
    background:rgba(255,255,255,.012);
    font-size:.46rem;
}
a.pwv2-chip:hover{
    color:#fff;
    border-color:rgb(var(--world-accent)/.24);
    background:rgb(var(--world-accent)/.04);
}
.pwv2-chip.is-empty{
    border-style:dashed;
    color:rgba(255,255,255,.24);
}

.pwv2-provenance{
    margin-top:11px;
    display:grid;
    grid-template-columns:1.2fr .4fr .8fr;
    gap:7px;
}
.pwv2-prov{
    min-height:72px;
    padding:10px;
    border:1px solid rgba(255,255,255,.055);
    border-radius:13px;
    background:rgba(255,255,255,.01);
}
.pwv2-prov span{
    display:block;
    color:var(--ws-dim);
    font:650 .34rem/1 monospace;
    letter-spacing:.06em;
}
.pwv2-prov strong{
    display:block;
    margin-top:8px;
    color:rgba(255,255,255,.72);
    font-size:.5rem;
    line-height:1.35;
}

.pwv2-actions{
    margin-top:12px;
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.pwv2-action{
    min-height:40px;
    padding:0 13px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    color:rgba(255,255,255,.62);
    background:rgba(255,255,255,.016);
    font:700 .41rem/1 monospace;
}
.pwv2-action:hover{
    color:#fff;
    border-color:rgb(var(--world-accent)/.24);
    background:rgb(var(--world-accent)/.04);
}
.pwv2-action.is-disabled{
    opacity:.28;
    pointer-events:none;
}

.pwv2-empty{
    padding:20px;
    border:1px dashed rgba(255,255,255,.08);
    border-radius:15px;
    color:var(--ws-dim);
    text-align:center;
    font-size:.5rem;
}

@media(max-width:1050px){
    .pwv2-layout{grid-template-columns:1fr}
    .pwv2-index{
        position:relative;
        top:auto;
        max-height:none;
    }
    .pwv2-list{
        max-height:390px;
    }
    .pwv2-head{grid-template-columns:1fr;gap:14px}
}

@media(max-width:760px){
    .pwv2-detail{padding:14px;min-height:0}
    .pwv2-top{grid-template-columns:1fr}
    .pwv2-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
    .pwv2-provenance{grid-template-columns:1fr}
}

@media(max-width:520px){
    .pwv2-metrics{grid-template-columns:1fr}
    .pwv2-index,
    .pwv2-detail{border-radius:21px}
}

/* V12 — Build Ledger system door */
.pwv2-ledger-door{
    margin:0 0 12px;
    min-height:96px;
    padding:14px 16px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    gap:8px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.075);
    border-radius:22px;
    color:#fff;
    background:
        radial-gradient(circle at 0 0,rgba(91,234,255,.10),transparent 38%),
        radial-gradient(circle at 100% 100%,rgba(184,255,104,.055),transparent 40%),
        linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.008)),
        rgba(255,255,255,.01);
    box-shadow:
        0 18px 50px rgba(0,0,0,.11),
        inset 0 1px 0 rgba(255,255,255,.04);
    font-size:.72rem;
    font-weight:760;
    transition:
        transform .2s var(--ws-ease),
        border-color .2s ease,
        background .2s ease;
}
.pwv2-ledger-door small{
    color:rgba(255,255,255,.34);
    font:650 .34rem/1.4 monospace;
    letter-spacing:.05em;
}
.pwv2-ledger-door:hover{
    transform:translateY(-2px);
    border-color:rgba(91,234,255,.24);
    background:
        radial-gradient(circle at 0 0,rgba(91,234,255,.14),transparent 40%),
        radial-gradient(circle at 100% 100%,rgba(184,255,104,.08),transparent 42%),
        rgba(255,255,255,.014);
}
