*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Arial,sans-serif;
    background:#0f172a;
    color:#e5e7eb;
}

.publication-header{
    min-height:76px;
    padding:14px 22px;
    background:#111827;
    border-bottom:1px solid #334155;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.publication-title{
    margin:0;
    font-size:22px;
}

.publication-description{
    margin:5px 0 0;
    color:#94a3b8;
    line-height:1.5;
}

.publication-author{
    white-space:nowrap;
    color:#cbd5e1;
}

.publication-layout{
    display:grid;
    grid-template-columns:260px 1fr;
    height:calc(100vh - 76px);
}

.publication-sidebar{
    background:#111827;
    border-right:1px solid #334155;
    padding:16px;
    overflow:auto;
}

.publication-section-button{
    width:100%;
    border:1px solid #334155;
    background:#1e293b;
    color:#e5e7eb;
    border-radius:8px;
    padding:11px 12px;
    text-align:left;
    cursor:pointer;
    margin-bottom:8px;
}

.publication-section-button.active{
    background:#2563eb;
    border-color:#2563eb;
}

.publication-main{
    position:relative;
    min-width:0;
    overflow:hidden;
}

.publication-toolbar{
    height:52px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    background:#111827;
    border-bottom:1px solid #334155;
}

.publication-button{
    border:1px solid #475569;
    border-radius:7px;
    background:#1e293b;
    color:#fff;
    padding:8px 12px;
    cursor:pointer;
}

.publication-button.active{
    background:#2563eb;
    border-color:#2563eb;
}

#publicationCanvasArea{
    position:absolute;
    top:52px;
    left:0;
    right:0;
    bottom:0;
    overflow:hidden;
    background:#0f172a;
}

#publicationCanvas{
    position:absolute;
    transform-origin:0 0;
}

#publicationConnections{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
    transform-origin:0 0;
    pointer-events:none;
}

.publication-node{
    position:absolute;
    width:420px;
    min-height:230px;
    border-radius:12px;
    background:#ffffff;
    color:#111827;
    box-shadow:0 10px 30px rgba(0,0,0,.24);
    overflow:hidden;
    cursor:grab;
}

.publication-node.dragging{
    cursor:grabbing;
}

.publication-node-header{
    padding:12px;
    border-bottom:1px solid #e5e7eb;
    font-weight:700;
}

.publication-node-type{
    font-size:11px;
    text-transform:uppercase;
    color:#64748b;
    margin-bottom:6px;
}

.publication-node-body{
    padding:12px;
    line-height:1.5;
    max-height:320px;
    overflow:auto;
}

.publication-empty{
    padding:30px;
    color:#94a3b8;
}

#publicationTimeline{
    display:none;
    position:absolute;
    top:52px;
    left:0;
    right:0;
    bottom:0;
    overflow:auto;
    padding:24px;
    background:#0f172a;
}

.publication-timeline-item{
    border-left:3px solid #3b82f6;
    padding:10px 14px;
    margin-bottom:12px;
    background:#111827;
    border-radius:0 8px 8px 0;
}

.publication-timeline-date{
    color:#60a5fa;
    font-size:13px;
    margin-bottom:5px;
}

@media(max-width:800px){

    .publication-layout{
        grid-template-columns:1fr;
        height:auto;
    }

    .publication-sidebar{
        border-right:0;
        border-bottom:1px solid #334155;
    }

    .publication-main{
        height:75vh;
    }
}