/* =========================================================
   WORLD DATA ENGINE V1
   Shared searchable data surfaces for world pages.
   ========================================================= */

.ws-data-section{
    background:
        radial-gradient(circle at 12% 18%,rgb(var(--world-accent)/.055),transparent 30%),
        radial-gradient(circle at 88% 80%,rgb(var(--world-accent-2)/.045),transparent 30%),
        rgba(10,21,31,.44);
}
.world-data-mount{min-height:240px}
.wd-head{
    display:grid;grid-template-columns:1fr minmax(280px,.65fr);gap:42px;align-items:end;margin-bottom:20px;
}
.wd-head span{
    color:rgb(var(--world-accent)/.88);font:650 .44rem/1 monospace;letter-spacing:.1em;
}
.wd-head h2{margin:10px 0 0;font-size:clamp(1.9rem,3.5vw,3.6rem);line-height:.94;letter-spacing:-.05em}
.wd-head p{margin:0;color:var(--ws-muted);font-size:.61rem;line-height:1.65}
.wd-toolbar{
    display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px;
}
.wd-search{
    flex:1 1 300px;min-height:42px;padding:0 13px;border:1px solid rgba(255,255,255,.12);border-radius:12px;
    color:#fff;background:rgba(255,255,255,.025);outline:none;
}
.wd-search:focus{border-color:rgb(var(--world-accent)/.38);box-shadow:0 0 0 3px rgb(var(--world-accent)/.055)}
.wd-filters{display:flex;gap:6px;flex-wrap:wrap}
.wd-filter{
    min-height:38px;padding:0 11px;border:1px solid rgba(255,255,255,.10);border-radius:999px;
    color:rgba(255,255,255,.52);background:rgba(255,255,255,.018);cursor:pointer;
    font:650 .4rem/1 monospace;letter-spacing:.055em;
}
.wd-filter.is-active,.wd-filter:hover{
    color:#fff;border-color:rgb(var(--world-accent)/.28);background:rgb(var(--world-accent)/.055);
}
.wd-meta{
    margin-bottom:12px;display:flex;justify-content:space-between;gap:12px;color:var(--ws-dim);
    font:600 .4rem/1.4 monospace;letter-spacing:.05em;
}
.wd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.wd-card{
    position:relative;min-height:176px;padding:15px;overflow:hidden;
    border:1px solid rgba(255,255,255,.10);border-radius:15px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.075),transparent 37%),
        linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.012)),
        rgba(17,30,43,.68);
    box-shadow:0 18px 50px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.04);
}
.wd-card:hover{border-color:rgb(var(--world-accent)/.26)}
.wd-card>span{
    color:rgb(var(--world-accent)/.76);font:650 .39rem/1 monospace;letter-spacing:.07em;text-transform:uppercase;
}
.wd-card h3{margin:12px 0 7px;color:#fff;font-size:.82rem;line-height:1.25;letter-spacing:-.02em}
.wd-card p{margin:0;color:rgba(238,246,255,.48);font-size:.52rem;line-height:1.55}
.wd-card footer{
    margin-top:14px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;
}
.wd-chip{
    padding:5px 7px;border:1px solid rgba(255,255,255,.085);border-radius:999px;
    color:rgba(255,255,255,.38);background:rgba(255,255,255,.016);font:600 .36rem/1 monospace;
}
.wd-count{
    margin-left:auto;color:rgb(var(--world-accent)/.72);font:700 .42rem/1 monospace;
}
.wd-media-card{padding:0;min-height:260px;cursor:pointer}
.wd-media{
    position:relative;height:180px;overflow:hidden;background:#08121b;
}
.wd-media img{width:100%;height:100%;display:block;object-fit:cover;filter:brightness(.88) saturate(1.05);transition:transform .45s var(--ws-ease),filter .3s ease}
.wd-media-card:hover .wd-media img{transform:scale(1.02);filter:brightness(.95) saturate(1.08)}
.wd-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 44%,rgba(5,12,18,.72))}
.wd-media-copy{padding:13px 14px 15px}
.wd-preview-warning{
    margin-bottom:12px;padding:10px 12px;border:1px solid rgba(255,172,104,.16);border-radius:10px;
    color:rgba(255,210,168,.64);background:rgba(255,172,104,.035);font:600 .4rem/1.5 monospace;
}
.wd-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.wd-profile-metric{
    min-height:132px;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:13px;background:rgba(255,255,255,.02)
}
.wd-profile-metric strong{display:block;color:rgb(var(--world-accent)/.9);font-size:1.45rem;letter-spacing:-.04em}
.wd-profile-metric span{display:block;margin-top:7px;color:var(--ws-muted);font-size:.48rem;line-height:1.45}
.wd-domain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}
.wd-domain{
    padding:11px 12px;border:1px solid rgba(255,255,255,.085);border-radius:11px;
    color:rgba(247,251,255,.68);background:rgba(255,255,255,.018);font-size:.53rem;
}
.wd-empty{padding:26px;border:1px dashed rgba(255,255,255,.10);border-radius:13px;color:var(--ws-dim);text-align:center;font-size:.55rem}

.wd-viewer{
    position:fixed;inset:0;z-index:99000;display:grid;place-items:center;padding:18px;
    opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;
}
.wd-viewer.is-open{opacity:1;visibility:visible;pointer-events:auto}
.wd-viewer-backdrop{position:absolute;inset:0;border:0;background:rgba(3,8,13,.80);backdrop-filter:blur(26px) saturate(145%)}
.wd-viewer-panel{
    position:relative;z-index:2;width:min(1120px,100%);max-height:calc(100vh - 36px);overflow:auto;
    border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(12,24,36,.98);
    box-shadow:0 50px 160px rgba(0,0,0,.48);
}
.wd-viewer-head{padding:15px 17px;display:flex;justify-content:space-between;gap:14px;align-items:center;border-bottom:1px solid rgba(255,255,255,.08)}
.wd-viewer-head h3{margin:0;color:#fff;font-size:1rem}
.wd-viewer-head button{width:38px;height:38px;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#fff;background:transparent;cursor:pointer}
.wd-viewer img{width:100%;max-height:76vh;display:block;object-fit:contain;background:#07111a}

@media(max-width:980px){
    .wd-head{grid-template-columns:1fr;gap:14px}
    .wd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .wd-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .wd-grid,.wd-domain-grid,.wd-profile-metrics{grid-template-columns:1fr}
}
/* Software cards become product detail routes */
.wd-card-link{
    cursor:pointer;
    transition:
        transform .2s var(--ws-ease),
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}
.wd-card-link:hover,
.wd-card-link:focus-visible{
    transform:translateY(-2px);
    outline:none;
    border-color:rgb(var(--world-accent)/.28);
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.11),transparent 40%),
        linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.016)),
        rgba(18,31,44,.74);
    box-shadow:
        0 22px 58px rgba(0,0,0,.15),
        0 0 0 3px rgb(var(--world-accent)/.045),
        inset 0 1px 0 rgba(255,255,255,.06);
}

/* =========================================================
   V13 — RECORD DETAIL DRAWER
   Project DNA / Technology details.
   ========================================================= */

.wd-card.is-interactive{
    cursor:pointer;
}

.wd-card.is-interactive::after{
    content:"↗";
    position:absolute;
    right:12px;
    top:12px;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border:1px solid rgb(var(--world-accent)/.13);
    border-radius:50%;
    color:rgb(var(--world-accent)/.72);
    background:rgb(var(--world-accent)/.025);
    font-size:.54rem;
    transition:transform .2s var(--ws-ease),background .2s ease;
}

.wd-card.is-interactive:hover::after{
    transform:translate(2px,-2px);
    background:rgb(var(--world-accent)/.065);
}

.wd-drawer{
    position:fixed;
    inset:0;
    z-index:99500;
    display:grid;
    place-items:end;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease,visibility .22s ease;
}

.wd-drawer.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.wd-drawer-backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:
        radial-gradient(circle at 20% 20%,rgb(var(--world-accent)/.05),transparent 28%),
        rgba(3,8,13,.76);
    backdrop-filter:blur(24px) saturate(145%);
}

.wd-drawer-panel{
    position:relative;
    z-index:2;
    width:min(760px,calc(100% - 16px));
    height:min(92vh,940px);
    margin:8px;
    overflow:auto;
    border:1px solid rgba(255,255,255,.105);
    border-radius:30px;
    background:
        radial-gradient(circle at 8% 4%,rgb(var(--world-accent)/.11),transparent 28%),
        radial-gradient(circle at 100% 100%,rgb(var(--world-accent-2)/.07),transparent 34%),
        linear-gradient(180deg,rgba(11,25,38,.985),rgba(7,17,27,.99));
    box-shadow:
        -28px 0 110px rgba(0,0,0,.34),
        inset 0 1px 0 rgba(255,255,255,.07);
    transform:translateX(28px);
    transition:transform .28s var(--ws-ease);
}

.wd-drawer.is-open .wd-drawer-panel{
    transform:none;
}

.wd-drawer-head{
    position:sticky;
    top:0;
    z-index:4;
    padding:17px 18px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    border-bottom:1px solid rgba(255,255,255,.07);
    background:rgba(9,21,32,.90);
    backdrop-filter:blur(20px) saturate(160%);
}

.wd-drawer-head span{
    display:block;
    color:rgb(var(--world-accent)/.78);
    font:700 .40rem/1 monospace;
    letter-spacing:.085em;
}

.wd-drawer-head h2{
    margin:8px 0 0;
    color:#fff;
    font-size:1.55rem;
    line-height:1.05;
    letter-spacing:-.04em;
}

.wd-drawer-close{
    width:40px;
    height:40px;
    flex:0 0 auto;
    border:1px solid rgba(255,255,255,.10);
    border-radius:50%;
    color:#fff;
    background:rgba(255,255,255,.02);
    cursor:pointer;
    font-size:1.1rem;
}

.wd-drawer-body{
    padding:18px;
}

.wd-drawer-lead{
    margin:0 0 16px;
    color:rgba(238,246,255,.64);
    font-size:.64rem;
    line-height:1.75;
}

.wd-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.wd-detail{
    min-height:92px;
    padding:12px;
    border:1px solid rgba(255,255,255,.075);
    border-radius:17px;
    background:
        linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008));
}

.wd-detail span{
    display:block;
    color:rgba(255,255,255,.30);
    font:650 .36rem/1 monospace;
    letter-spacing:.07em;
}

.wd-detail strong{
    display:block;
    margin-top:8px;
    color:#fff;
    font-size:.61rem;
    line-height:1.45;
}

.wd-detail-section{
    margin-top:16px;
    padding:15px;
    border:1px solid rgba(255,255,255,.075);
    border-radius:19px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.05),transparent 34%),
        rgba(255,255,255,.012);
}

.wd-detail-section>span{
    color:rgb(var(--world-accent)/.72);
    font:700 .38rem/1 monospace;
    letter-spacing:.08em;
}

.wd-detail-section h3{
    margin:9px 0 12px;
    color:#fff;
    font-size:.82rem;
}

.wd-detail-chips{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.wd-detail-chip{
    padding:7px 9px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    color:rgba(255,255,255,.52);
    background:rgba(255,255,255,.015);
    font:600 .39rem/1 monospace;
}

.wd-detail-note{
    margin-top:16px;
    padding:12px 13px;
    border:1px solid rgba(255,172,104,.13);
    border-radius:15px;
    color:rgba(255,210,168,.58);
    background:rgba(255,172,104,.025);
    font:600 .40rem/1.55 monospace;
}

@media(max-width:640px){
    .wd-drawer-panel{
        width:calc(100% - 8px);
        height:calc(100vh - 8px);
        margin:4px;
        border-radius:22px;
    }

    .wd-detail-grid{
        grid-template-columns:1fr;
    }
}

/* V13.1 — Registry Intelligence */
.wd-intel{
    margin:0 0 14px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px;
}

.wd-intel-card{
    min-height:104px;
    padding:13px;
    border:1px solid rgba(255,255,255,.075);
    border-radius:18px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.07),transparent 38%),
        linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.008));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}

.wd-intel-card span{
    display:block;
    color:rgba(255,255,255,.28);
    font:650 .35rem/1 monospace;
    letter-spacing:.075em;
}

.wd-intel-card strong{
    display:block;
    margin-top:10px;
    color:#fff;
    font-size:1.25rem;
    line-height:1;
    letter-spacing:-.04em;
}

.wd-intel-card small{
    display:block;
    margin-top:7px;
    color:rgba(238,246,255,.42);
    font:600 .39rem/1.35 monospace;
}

.wd-intel-card.is-state strong{
    font-size:.72rem;
    line-height:1.25;
    letter-spacing:.01em;
    color:rgb(var(--world-accent)/.88);
}

.wd-tech-meter{
    margin-top:13px;
    height:4px;
    overflow:hidden;
    border-radius:999px;
    background:rgba(255,255,255,.035);
}

.wd-tech-meter i{
    display:block;
    width:100%;
    height:100%;
    transform:scaleX(var(--tech-ratio,0));
    transform-origin:0 50%;
    border-radius:inherit;
    background:
        linear-gradient(90deg,rgb(var(--world-accent)),rgb(var(--world-accent-2)));
    box-shadow:0 0 11px rgb(var(--world-accent)/.24);
}

@media(max-width:900px){
    .wd-intel{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:520px){
    .wd-intel{
        grid-template-columns:1fr 1fr;
    }

    .wd-intel-card{
        min-height:92px;
    }
}

/* =========================================================
   V13 — ROLE MATRIX / DEEP ROUTE UX
   ========================================================= */

.wd-role-matrix{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin-top:10px;
}

.wd-role-cluster{
    --role-a:91 234 255;
    --role-b:108 141 255;
    position:relative;
    overflow:hidden;
    min-height:150px;
    padding:14px;
    border:1px solid rgba(255,255,255,.085);
    border-radius:20px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--role-a)/.09),transparent 36%),
        radial-gradient(circle at 100% 100%,rgb(var(--role-b)/.06),transparent 38%),
        linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.01)),
        rgba(15,29,42,.64);
    box-shadow:
        0 18px 50px rgba(0,0,0,.11),
        inset 0 1px 0 rgba(255,255,255,.045);
}

.wd-role-cluster[data-accent="blue"]{
    --role-a:108 141 255;
    --role-b:91 234 255;
}
.wd-role-cluster[data-accent="violet"]{
    --role-a:173 140 255;
    --role-b:108 141 255;
}
.wd-role-cluster[data-accent="pink"]{
    --role-a:255 114 183;
    --role-b:173 140 255;
}
.wd-role-cluster[data-accent="orange"]{
    --role-a:255 172 104;
    --role-b:184 255 104;
}
.wd-role-cluster[data-accent="cyan"]{
    --role-a:91 234 255;
    --role-b:108 141 255;
}

.wd-role-cluster-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    padding-bottom:11px;
    border-bottom:1px solid rgba(255,255,255,.055);
}

.wd-role-cluster-head span{
    color:#fff;
    font-size:.66rem;
    font-weight:750;
    letter-spacing:-.015em;
}

.wd-role-cluster-head small{
    color:rgb(var(--role-a)/.68);
    font:700 .36rem/1 monospace;
    letter-spacing:.06em;
}

.wd-role-list{
    margin-top:11px;
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}

.wd-role-chip{
    min-height:34px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(255,255,255,.07);
    border-radius:999px;
    color:rgba(255,255,255,.58);
    background:rgba(255,255,255,.014);
    font:650 .4rem/1 monospace;
    letter-spacing:.035em;
    transition:
        transform .18s var(--ws-ease),
        color .18s ease,
        border-color .18s ease,
        background .18s ease;
}

a.wd-role-chip:hover,
a.wd-role-chip:focus-visible{
    transform:translateY(-1px);
    color:#fff;
    border-color:rgb(var(--role-a)/.24);
    background:
        linear-gradient(135deg,rgb(var(--role-a)/.065),rgb(var(--role-b)/.035));
    outline:none;
}

.wd-card-link{
    cursor:pointer;
}

.wd-card-link::after{
    content:"↗";
    position:absolute;
    right:12px;
    top:12px;
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border:1px solid rgb(var(--world-accent)/.14);
    border-radius:50%;
    color:rgb(var(--world-accent)/.66);
    background:rgb(var(--world-accent)/.025);
    font-size:.52rem;
    transition:
        transform .18s var(--ws-ease),
        background .18s ease,
        color .18s ease;
}

.wd-card-link:hover::after,
.wd-card-link:focus-visible::after{
    transform:translate(1px,-1px);
    color:#fff;
    background:rgb(var(--world-accent)/.07);
}

@media(max-width:820px){
    .wd-role-matrix{
        grid-template-columns:1fr;
    }
}

/* Project DNA drawer actions */
.wd-detail-actions{
    margin-top:18px;
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.wd-detail-action{
    min-height:42px;
    padding:0 15px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(108,141,255,.20);
    border-radius:999px;
    color:#071017;
    background:
        linear-gradient(105deg,rgba(184,255,104,.94),rgba(91,234,255,.92));
    box-shadow:
        0 12px 34px rgba(91,234,255,.08),
        inset 0 1px 0 rgba(255,255,255,.28);
    font:750 .43rem/1 monospace;
    letter-spacing:.055em;
    transition:
        transform .2s cubic-bezier(.2,.75,.2,1),
        box-shadow .2s ease;
}

.wd-detail-action:hover{
    transform:translateY(-2px);
    box-shadow:
        0 17px 40px rgba(91,234,255,.13),
        inset 0 1px 0 rgba(255,255,255,.34);
}
