*{box-sizing:border-box}body{margin:0;font:15px/1.55 system-ui,-apple-system,Segoe UI,Arial;color:#2d3e4c}a{color:#0876b9;text-decoration:none}a:hover{text-decoration:underline}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}header{background:#263b4c;border-bottom:4px solid #0780bd}.nav{min-height:68px;display:flex;align-items:center;gap:24px}.logo{font-size:26px;font-weight:850;letter-spacing:1.5px;color:#fff}.navsearch{flex:1}.navsearch input{width:min(100%,430px);padding:10px;border:0;border-radius:4px}.nav nav{display:flex;gap:17px;align-items:center}.nav nav a{color:#fff}.btn,.secondary{display:inline-block;border:0;border-radius:4px;padding:11px 18px;font-weight:700;cursor:pointer}.btn{background:#0879b5;color:#fff}.mini{padding:7px 11px}.secondary{background:#e7edf1}.hero{text-align:center;background:#f2f6f8;padding:72px 0;border-bottom:1px solid #dae4e9}.hero h1{font-size:44px;margin:0;color:#263b4c}.hero p{font-size:19px;color:#647581}.bigsearch{display:flex;max-width:760px;margin:28px auto}.bigsearch input{flex:1;padding:16px;border:1px solid #b9c7d0;font-size:16px}.bigsearch button{border:0;background:#f2aa2e;padding:0 24px;font-weight:750}main{padding:42px 0 65px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #dce4e9;margin-bottom:45px}.stats div{text-align:center;padding:25px;border-right:1px solid #e3e8eb}.stats b{display:block;font-size:30px;color:#0879b5}.stats span{font-size:12px;color:#74838e;text-transform:uppercase}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.cards,.communities{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.card,.panel{border:1px solid #dce4e9;border-radius:5px;padding:22px;background:#fff}.tag{display:inline-block;background:#e8f5fa;color:#0870a4;border:1px solid #c9e4ef;border-radius:3px;padding:2px 7px;font-size:11px;font-weight:700}.authors{color:#0876b9}.features{margin-top:50px;background:#f4f7f9;padding:30px}.features>div{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.narrow{max-width:650px}.installer{margin-top:65px}.form label{display:block;font-weight:650;margin:15px 0}.form input,.form select,.form textarea,.searchform input,.searchform select{display:block;width:100%;padding:11px;border:1px solid #bcc9d2;border-radius:4px;margin-top:5px;font:inherit}.warning,.flash,.success{padding:13px 16px;margin:18px auto;border-radius:4px}.warning{background:#fff2e3;color:#884900}.flash,.success{background:#e9f7ef;color:#176b38}.deposit,.record{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:28px}.sticky{position:sticky;top:20px}.drop{border:2px dashed #b9c9d3!important;background:#f8fafb;padding:28px!important;text-align:center}.file{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5eaed;padding:12px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.record .panel{margin-top:22px}.record dt{font-weight:700;margin-top:10px}.record dd{margin:0;word-break:break-word}.searchform{display:grid;grid-template-columns:1fr 220px 110px;gap:10px;margin-bottom:28px}.results{display:grid;grid-template-columns:220px 1fr;gap:28px}.filters{height:max-content}.filters a{display:block;padding:7px 0}.result{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid #dfe6ea}.avatar{width:48px;height:48px;background:#0879b5;color:#fff;display:grid;place-items:center;font-size:21px;font-weight:800;border-radius:5px}.empty{padding:25px;border:1px dashed #c4d0d7;color:#71808b}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e1e7eb}footer{background:#263b4c;color:#dbe4e9;padding:38px 0 20px}.foot{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:64px;align-items:start}.foot a{display:block;color:#dbe4e9}.copy{border-top:1px solid #435766;margin-top:25px;padding-top:17px;color:#aebcc5}

/* =========================================================
   ZANODO FOOTER - CLEAN TWO COLUMN LAYOUT
   LEFT: Notice | RIGHT: ZANODO
========================================================= */
footer .foot > div {
    min-width: 0;
}

footer .foot > div:first-child {
    grid-column: 1;
}

footer .foot > div:last-child {
    grid-column: 2;
}

footer .foot b {
    display: block;
    margin-bottom: 10px;
    color: #ffffff;
    font-size: 16px;
}

footer .foot p {
    margin: 0;
    line-height: 1.7;
}

footer .copy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

footer .footer-copyright {
    margin-left: 0 !important;
}

footer .footer-bottom-menu {
    margin-left: auto !important;
}
@media(max-width:800px){.nav{flex-wrap:wrap;padding:12px 0}.navsearch{order:3;flex-basis:100%}.nav nav{flex-wrap:wrap}.hero h1{font-size:34px}.stats,.cards,.communities,.features>div,.deposit,.record,.results,.foot{grid-template-columns:1fr}.searchform,.two{grid-template-columns:1fr}.sticky{position:static}}.logo img{max-height:44px;max-width:210px;display:block}.editor-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.editor-toolbar button{padding:7px 10px;border:1px solid #bcc9d2;background:#f7f9fa;border-radius:4px;cursor:pointer}.html-editor{min-height:220px;border:1px solid #bcc9d2;border-radius:4px;padding:12px;margin-top:6px;background:#fff}.html-content img{max-width:100%;height:auto}.html-content a{text-decoration:underline}.danger{border:0;border-radius:4px;padding:9px 13px;background:#b42318;color:#fff;font-weight:700;cursor:pointer}.inline{display:inline}.link-danger{border:0;background:none;color:#b42318;padding:0;cursor:pointer;font:inherit}.actions form{margin:0}.actions{align-items:center}

/* ZANODO Admin Console */
.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}.admin-nav{position:sticky;top:20px;padding:14px}.admin-nav a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none}.admin-nav a:hover{background:#f3f6fa}.admin-nav .admin-title{font-weight:700;padding:8px 12px 12px}.admin-content{min-width:0}.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-card{padding:18px}.admin-card b{font-size:28px;display:block}.admin-card span{opacity:.7}.admin-table-wrap{overflow:auto}.admin-table-wrap table{width:100%}.admin-help{font-size:.92rem;opacity:.72}.current-logo{max-width:220px;max-height:70px;object-fit:contain}.current-favicon{width:48px;height:48px;object-fit:contain}.danger-zone{border:1px solid #f0caca}.link-danger,.danger-btn{color:#b42318}.admin-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.badge-admin{font-size:12px;padding:3px 8px;border-radius:999px;background:#eef4ff}.badge-user{font-size:12px;padding:3px 8px;border-radius:999px;background:#f2f4f7}@media(max-width:800px){.admin-shell{grid-template-columns:1fr}.admin-nav{position:static}.admin-nav a{display:inline-block}.admin-grid{grid-template-columns:1fr}}

/* V3.2 polished administration */
.admin-shell{grid-template-columns:260px minmax(0,1fr);gap:28px}.admin-nav{padding:0;overflow:hidden;border-radius:14px;box-shadow:0 8px 30px rgba(35,55,70,.08)}.admin-brand{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid #e7edf1}.admin-brand-mark{width:40px;height:40px;border-radius:10px;background:#0879b5;color:#fff;display:grid;place-items:center;font-size:21px;font-weight:900}.admin-brand b,.admin-brand small{display:block}.admin-brand small{color:#788995}.admin-nav nav{padding:10px}.admin-nav nav a{display:flex;align-items:center;gap:11px;font-weight:650;color:#344957}.admin-nav nav a span{width:24px;text-align:center;color:#0879b5}.admin-nav-bottom{padding:12px 10px 16px;border-top:1px solid #e7edf1}.admin-nav-bottom a{display:block}.admin-content>.heading{margin-bottom:20px}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px}.admin-card{border:0;border-radius:13px;box-shadow:0 6px 24px rgba(35,55,70,.07)}.admin-card b{color:#0879b5}.admin-content>.panel{border-radius:13px;box-shadow:0 6px 24px rgba(35,55,70,.06)}.admin-table-wrap th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#71818d;background:#f8fafb}.field-help{display:block;font-weight:400;color:#7a8994;margin-top:3px}.hero-brand{display:inline-block;margin-bottom:10px;padding:5px 11px;border-radius:999px;background:#e4f3fa;color:#0879b5;font-weight:800;letter-spacing:.08em}.html-editor{min-height:320px;line-height:1.7;overflow:auto}.html-editor h2,.html-editor h3,.html-editor h4{color:#263b4c;margin:1.1em 0 .45em}.html-editor blockquote{border-left:4px solid #0879b5;margin:1em 0;padding:.3em 1em;background:#f5f9fb}.html-editor a{color:#0876b9;text-decoration:underline}.editor-toolbar{position:sticky;top:0;z-index:2;background:#f8fafb;border:1px solid #dce4e9;border-bottom:0;border-radius:7px 7px 0 0;padding:8px}.editor-toolbar+.html-editor{margin-top:0;border-radius:0 0 7px 7px}@media(max-width:800px){.admin-shell{grid-template-columns:1fr}.admin-nav{position:static}.admin-nav nav a{display:flex}.admin-grid{grid-template-columns:1fr}}

/* ZANODO Fresh Professional UI */
:root{--ink:#172b3a;--muted:#6c7d89;--line:#dce5ea;--soft:#f5f8fa;--brand:#0879b5;--brand2:#075d8b;--shadow:0 12px 35px rgba(25,48,64,.08)}body{background:#fbfcfd;color:var(--ink)}header{background:#173447;border-bottom:0;box-shadow:0 2px 16px rgba(0,0,0,.12)}.nav{min-height:76px}.logo{letter-spacing:.08em}.panel,.card{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.btn,.secondary,.danger{border-radius:9px}.btn{background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 5px 14px rgba(8,121,181,.2)}.secondary{color:#284454;background:#eef3f6;border:1px solid #d7e2e8}.hero{background:linear-gradient(180deg,#eef7fb 0,#f8fbfc 100%);padding:86px 0}.hero h1{font-size:50px;letter-spacing:-.035em}.page-kicker,.eyebrow{font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}.lead,.muted{color:var(--muted)}.deposit-form{padding:30px}.section-title{display:flex;gap:14px;align-items:flex-start;margin:34px 0 15px;border-top:1px solid var(--line);padding-top:28px}.section-title:first-of-type{border-top:0;margin-top:0;padding-top:0}.section-title>span{width:34px;height:34px;border-radius:10px;background:#e8f5fb;color:var(--brand);display:grid;place-items:center;font-weight:850}.section-title h2,.section-title p{margin:0}.drop{border-radius:12px!important;background:#f7fbfd}.editor-shell{border:1px solid #bccbd4;border-radius:10px;overflow:hidden;background:white}.editor-toolbar{position:static;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#f7fafb;padding:9px}.editor-toolbar span{width:1px;background:#d6e0e5;margin:2px 3px}.editor-toolbar button{border:0;background:transparent;border-radius:6px;font-weight:650}.editor-toolbar button:hover{background:#e8f1f5}.editor-shell .html-editor{border:0!important;border-radius:0!important;margin:0!important;min-height:360px;padding:20px}.publish-card{border-top:4px solid var(--brand)}.status-dot{width:9px;height:9px;border-radius:50%;background:#2ca36b;float:right}.block{display:block;text-align:center}.record{grid-template-columns:minmax(0,3fr) minmax(300px,1fr)}.record-topline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);margin-bottom:14px}.record-heading h1{font-size:38px;line-height:1.15;letter-spacing:-.025em}.version-pill{margin-left:auto;background:#eef3f6;color:#385264;border-radius:999px;padding:5px 10px;font-weight:750}.type-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;text-decoration:none!important}.type-publication{background:#e8f4ff;color:#0b66a1}.type-dataset{background:#e9f8ef;color:#187044}.type-reports{background:#fff2dc;color:#8a5400}.type-software{background:#f1eaff;color:#6542a4}.type-poster{background:#ffecef;color:#a23a4b}.type-presentation{background:#fff0e8;color:#a14b1d}.type-image{background:#e9f7f7;color:#16706f}.type-video{background:#f7eafb;color:#823997}.type-other{background:#eef1f3;color:#52626d}.creator-line{margin:14px 0 26px;color:#397a9d}.creator{font-weight:700;border-bottom:1px dotted #7aa7be;cursor:help}.text-btn{border:0;background:none;color:var(--brand);cursor:pointer;font-weight:700}.affiliation-inline{display:none;color:var(--muted)}.affiliation-inline.show{display:inline}.content-panel{padding:28px}.preview-panel{overflow:hidden;padding:0!important}.preview-heading{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f7fafb;border-bottom:1px solid var(--line)}.preview-heading h3{margin:3px 0}.preview-body{height:720px}.preview-body.collapsed{display:none}.preview-iframe{width:100%;height:100%;border:0;background:#e8edf0}.file-row{padding:15px 0}.record-sidebar{padding:22px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.metric-grid div{background:#f4f8fa;border-radius:10px;padding:15px;text-align:center}.metric-grid b{display:block;font-size:26px;color:var(--brand)}.metric-grid span{font-size:12px;color:var(--muted);text-transform:uppercase}.record-sidebar summary{cursor:pointer;color:var(--brand);font-weight:700}.mini-stats{font-size:12px;margin-top:12px}.mini-stats th,.mini-stats td{padding:7px 4px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-block;background:#f0f4f6;border:1px solid #dde6eb;border-radius:999px;padding:4px 8px;font-size:12px;color:#3d5666}.profile-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:28px}.profile-card{display:flex;gap:20px;align-items:flex-start;margin-bottom:22px}.profile-avatar{width:76px;height:76px;border-radius:20px;background:linear-gradient(135deg,var(--brand),#43a6cf);color:white;display:grid;place-items:center;font-size:30px;font-weight:900}.profile-card h1{margin:0}.affiliation{color:var(--brand);font-weight:700}.profile-record{display:flex;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.profile-record h3{margin:7px 0 3px}.filters a{display:flex;gap:8px;align-items:center}.type-dot{width:9px;height:9px;border-radius:50%;background:#9aa9b2}.type-dot.type-publication{background:#2a88c9}.type-dot.type-dataset{background:#35a768}.type-dot.type-reports{background:#d99221}.type-dot.type-software{background:#7755bd}.admin-shell{grid-template-columns:270px minmax(0,1fr);gap:30px}.admin-nav{background:#173447;color:#dce8ee;border:0;box-shadow:0 16px 40px rgba(18,44,60,.18)}.admin-brand{border-bottom-color:#345164}.admin-brand-mark{background:#0a8dce}.admin-brand small{color:#9fb2bd}.admin-nav nav a,.admin-nav-bottom a{color:#dce8ee}.admin-nav nav a:hover,.admin-nav-bottom a:hover{background:#23475d;color:#fff}.admin-nav nav a span{color:#6ec5ed}.admin-content>.heading h1{font-size:34px}.admin-card{padding:22px;background:linear-gradient(180deg,#fff,#fbfdfe)}.admin-card b{font-size:32px}.admin-table-wrap{border-radius:12px;overflow:auto}.admin-table-wrap th{background:#f3f7f9;padding:14px}.admin-table-wrap td{padding:14px}.install-card{margin-top:70px;padding:34px}@media(max-width:850px){.profile-grid{grid-template-columns:1fr}.preview-body{height:520px}.record-heading h1{font-size:31px}.version-pill{margin-left:0}.admin-shell{grid-template-columns:1fr}}

/* =========================================================
   ZANODO RECORD PAGE
   FULL RESPONSIVE DESIGN
   Desktop / Laptop / Tablet / Mobile
========================================================= */

/* Prevent record content from forcing page width */
.record,
.record article,
.record aside,
.record .panel,
.record .content-panel,
.record .preview-panel,
.record .record-sidebar {
    min-width: 0;
}

/* Main record layout */
.record {
    width: min(1180px, calc(100% - 36px));
    grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr);
    gap: 28px;
    align-items: start;
}

/* =========================================================
   RECORD TOP
========================================================= */

.record-topline {
    display: flex;
    align-items: center;
    gap: 10px 12px;
    flex-wrap: wrap;
}

.record-topline > * {
    max-width: 100%;
}

.record-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.record-heading h1 {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}

.record-heading .actions {
    flex-shrink: 0;
    margin-top: 0;
}

/* =========================================================
   CREATOR
========================================================= */

.creator-line {
    overflow-wrap: anywhere;
    word-break: normal;
}

.creator-line .creator {
    max-width: 100%;
}

.affiliation-inline {
    overflow-wrap: anywhere;
}

/* =========================================================
   DESCRIPTION
========================================================= */

.record .html-content {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-wrap: break-word;
}

.record .html-content img,
.record .html-content video,
.record .html-content iframe {
    max-width: 100%;
}

.record .html-content img,
.record .html-content video {
    height: auto;
}

.record .html-content table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
}

.record .html-content pre {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
}

.record .html-content a {
    overflow-wrap: anywhere;
}

/* =========================================================
   PDF PREVIEW
========================================================= */

.preview-panel {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.preview-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.preview-heading > div {
    min-width: 0;
}

.preview-heading h3 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.preview-body {
    width: 100%;
    height: clamp(500px, 70vh, 760px);
    overflow: hidden;
}

.preview-iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* =========================================================
   FILES
========================================================= */

.record .section-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    flex-wrap: wrap;
}

.record .file-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
}

.record .file-info {
    flex: 1 1 auto;
    min-width: 0;
}

.record .file-info b,
.record .file-info a,
.record .file-location {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.record .file-location {
    display: inline-block;
    max-width: 100%;
}

.record .file-row .actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
    margin-top: 0;
}

/* =========================================================
   SIDEBAR
========================================================= */

.record aside {
    min-width: 0;
}

.record-sidebar {
    width: 100%;
    max-width: 100%;
}

.record-sidebar dl,
.record-sidebar dd {
    min-width: 0;
    max-width: 100%;
}

.record-sidebar dd {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* Views / Downloads */

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

.metric-grid div {
    min-width: 0;
}

/* Stats table */

.mini-stats {
    width: 100%;
    table-layout: auto;
}

.mini-stats th,
.mini-stats td {
    overflow-wrap: anywhere;
}

/* Keywords */

.record-sidebar .chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.record-sidebar .chip {
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* =========================================================
   TABLET
   1100px and below
========================================================= */

@media (max-width: 1100px) {

    .record {
        grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr);
        gap: 22px;
    }

    .record-heading h1 {
        font-size: 34px;
    }

    .content-panel {
        padding: 24px;
    }

    .record-sidebar {
        padding: 18px;
    }

    .preview-body {
        height: 620px;
    }
}

/* =========================================================
   TABLET / SMALL LAPTOP
   900px and below
========================================================= */

@media (max-width: 900px) {

    /*
     * Switch record page to one column.
     * Main content first, details underneath.
     */

    .record {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
    }

    .record article,
    .record aside {
        width: 100%;
        max-width: 100%;
    }

    .record .sticky {
        position: static;
        top: auto;
    }

    .record-heading h1 {
        font-size: 32px;
    }

    .preview-body {
        height: 600px;
    }

    .record-sidebar {
        padding: 22px;
    }
}

/* =========================================================
   MOBILE
   700px and below
========================================================= */

@media (max-width: 700px) {

    .record {
        width: min(100% - 24px, 1180px);
        padding-top: 26px;
        padding-bottom: 45px;
        gap: 20px;
    }

    /* Top metadata */

    .record-topline {
        align-items: flex-start;
        gap: 8px;
    }

    .record-topline .version-pill {
        margin-left: 0;
    }

    /* Title */

    .record-heading {
        display: block;
    }

    .record-heading h1 {
        font-size: 28px;
        line-height: 1.18;
        margin-bottom: 16px;
    }

    /* Edit/delete buttons */

    .record-heading .actions {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
        width: 100%;
        margin-top: 12px;
    }

    /* Creator */

    .creator-line {
        line-height: 1.8;
        margin-bottom: 20px;
    }

    .creator-line .text-btn {
        display: inline-block;
        margin-top: 4px;
    }

    .affiliation-inline.show {
        display: block;
        margin-top: 5px;
    }

    /* Panels */

    .record .panel {
        border-radius: 10px;
    }

    .content-panel {
        padding: 20px;
    }

    .content-panel h2 {
        margin-top: 0;
    }

    /* PDF */

    .preview-heading {
        align-items: flex-start;
        flex-direction: column;
        padding: 18px;
    }

    .preview-heading .secondary {
        width: 100%;
        text-align: center;
    }

    .preview-body {
        height: 70vh;
        min-height: 450px;
        max-height: 650px;
    }

    /* Files */

    .record .file-row {
        display: block;
        padding: 17px 0;
    }

    .record .file-info {
        width: 100%;
    }

    .record .file-location {
        margin-top: 4px;
        font-size: 11px;
    }

    .record .file-row .actions {
        display: flex;
        width: 100%;
        justify-content: flex-start;
        margin-top: 14px;
        gap: 8px;
    }

    .record .file-row .actions a {
        flex: 1 1 0;
        text-align: center;
    }

    /* Sidebar */

    .record-sidebar {
        padding: 18px;
    }

    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-grid b {
        font-size: 23px;
    }

    /* Details stats */

    .mini-stats {
        font-size: 11px;
    }

    .mini-stats th,
    .mini-stats td {
        padding: 7px 3px;
    }
}

/* =========================================================
   SMALL MOBILE
   480px and below
========================================================= */

@media (max-width: 480px) {

    .record {
        width: calc(100% - 20px);
    }

    .record-heading h1 {
        font-size: 25px;
        line-height: 1.2;
    }

    .record-topline {
        font-size: 13px;
    }

    .type-badge {
        font-size: 11px;
    }

    .content-panel {
        padding: 16px;
    }

    /* Keep view/download cards side-by-side */

    .metric-grid {
        gap: 7px;
    }

    .metric-grid div {
        padding: 12px 6px;
    }

    .metric-grid b {
        font-size: 21px;
    }

    .metric-grid span {
        font-size: 10px;
    }

    /* File buttons */

    .record .file-row .actions {
        flex-direction: column;
    }

    .record .file-row .actions a {
        display: block;
        width: 100%;
    }

    /* PDF */

    .preview-body {
        height: 60vh;
        min-height: 400px;
    }

    /* Stats table can scroll on very small screens */

    .record details {
        max-width: 100%;
        overflow-x: auto;
    }

    .mini-stats {
        min-width: 300px;
    }
}

/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 360px) {

    .record-heading h1 {
        font-size: 23px;
    }

    .record-sidebar,
    .content-panel {
        padding: 14px;
    }

    .preview-heading {
        padding: 14px;
    }

    .preview-body {
        min-height: 360px;
    }
}

/* =========================================================
   ZANODO MOBILE HEADER + FOOTER CENTER
========================================================= */

@media (max-width: 800px) {

    /* ---------------------------------------------------------
       HEADER - CENTER ZANODO LOGO
    --------------------------------------------------------- */

    header .nav {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 14px 0;
    }

    header .logo {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        text-align: center;
        margin: 0 auto;
    }

    header .logo img {
        display: block;
        margin: 0 auto;
        max-width: 210px;
        max-height: 44px;
    }

    /* Search centered */

    header .navsearch {
        width: 100%;
        order: initial;
        flex: none;
        text-align: center;
    }

    header .navsearch input {
        display: block;
        width: 100%;
        max-width: 430px;
        margin: 0 auto;
    }

    /* Header menu centered */

    header .nav nav {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 10px 16px;
        text-align: center;
    }


    /* ---------------------------------------------------------
       MAIN FOOTER CENTER
    --------------------------------------------------------- */

    footer .foot {
        display: grid;
        grid-template-columns: 1fr;
        gap: 28px;
        text-align: center;
    }

    footer .foot > div {
        width: 100%;
        grid-column: 1 !important;
        text-align: center;
    }

    footer .foot p {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    footer .foot a {
        text-align: center;
    }


    /* ---------------------------------------------------------
       BOTTOM FOOTER
    --------------------------------------------------------- */

    footer .copy {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 14px !important;
        text-align: center !important;
    }

    /* Dynamic footer menu */

    footer .footer-bottom-menu {
        width: 100%;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 10px 18px !important;
        text-align: center !important;
    }

    footer .footer-bottom-menu a {
        text-align: center !important;
    }

    /* Copyright */

    footer .footer-copyright {
        width: 100%;
        margin-left: 0 !important;
        text-align: center !important;
        white-space: normal !important;
        color: #ffffff !important;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    header .logo {
        font-size: 40px;
    }

    header .logo img {
        max-width: 180px;
        max-height: 42px;
    }

    footer .foot {
        gap: 24px;
    }

    footer .footer-bottom-menu {
        gap: 8px 14px !important;
    }
}

@media (max-width: 800px) {

    header .logo {
        order: 1;
    }

    header .nav nav {
        order: 2;
    }

    header .navsearch {
        order: 3;
        width: 100%;
    }
}

/* =========================================================
   ZANODO RECORD HEADER - POLISHED
========================================================= */

.record-main-header {
    width: 100%;
    margin: 0 0 30px;
    padding: 0;
}


/* =========================================================
   FIRST LINE
   LEFT: Published | Version
   RIGHT: Resource Type | Open
========================================================= */

.record-meta-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;

    margin: 0 0 18px;

    font-size: 14px;
    line-height: 1.5;
    color: #667985;
}

.record-meta-left {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;

    min-width: 0;
}

.record-meta-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;

    margin-left: auto;
    flex-shrink: 0;
}

.record-meta-separator {
    color: #a5b0b7;
}


/* =========================================================
   RESOURCE TYPE
========================================================= */

.record-meta-right .type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 28px;
    padding: 4px 11px;

    border-radius: 5px;

    font-size: 12px;
    line-height: 1;
    font-weight: 750;

    text-decoration: none !important;
}


/* =========================================================
   OPEN BADGE
========================================================= */

.open-access-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;

    min-height: 28px;
    padding: 4px 11px;

    border-radius: 5px;

    background: #27823b;
    color: #ffffff !important;

    font-size: 12px;
    line-height: 1;
    font-weight: 750;

    white-space: nowrap;
}


/* =========================================================
   SECOND LINE - RECORD TITLE
========================================================= */

.record-title-row {
    width: 100%;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 24px;

    margin: 0 0 18px;
}

.record-title-row h1 {
    flex: 1;
    min-width: 0;

    margin: 0;

    color: #172b3a;

    font-size: 38px;
    line-height: 1.17;
    font-weight: 700;
    letter-spacing: -0.025em;

    overflow-wrap: anywhere;
}


/* =========================================================
   OWNER EDIT / DELETE
========================================================= */

.record-owner-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 8px;

    flex-shrink: 0;
}

.record-owner-actions form {
    margin: 0;
}


/* =========================================================
   THIRD LINE
   LEFT: Creator / Affiliation
   RIGHT: Show affiliation
========================================================= */

.record-creator-row {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    margin: 0;
    padding-bottom: 4px;
}

.record-creator-info {
    flex: 1;
    min-width: 0;

    color: #607481;

    font-size: 15px;
    line-height: 1.6;

    overflow-wrap: anywhere;
}


/* CREATOR LINK */

.record-creator-info .creator {
    color: #52758a !important;

    font-weight: 600;

    text-decoration: none !important;

    border-bottom: 1px dotted #91a7b4;
}

.record-creator-info .creator:hover {
    color: #0879b5 !important;
}


/* =========================================================
   AFFILIATION
========================================================= */

.record-creator-info .affiliation-inline {
    display: none;

    margin-left: 6px;

    color: #71838e;

    font-weight: 400;
}

.record-creator-info .affiliation-inline.show {
    display: inline;
}


/* =========================================================
   SHOW AFFILIATIONS BUTTON
========================================================= */

.show-affiliation-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    padding: 7px 12px;

    border: 1px solid #d4e2e9;
    border-radius: 7px;

    background: #f7fafc;
    color: #0879b5;

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;

    cursor: pointer;
    white-space: nowrap;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease,
        box-shadow .18s ease;
}

.show-affiliation-btn:hover {
    background: #edf7fb;
    border-color: #a9d4e7;
    color: #075d8b;

    box-shadow: 0 2px 7px rgba(8, 121, 181, .10);
}

.show-affiliation-btn:focus-visible {
    outline: 3px solid rgba(8, 121, 181, .18);
    outline-offset: 2px;
}


/* + ICON */

.affiliation-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 18px;
    height: 18px;

    border-radius: 50%;

    background: #e1f2f9;
    color: #0879b5;

    font-size: 15px;
    font-weight: 700;
    line-height: 18px;

    transition: transform .2s ease;
}


/* Rotate + when affiliation is open */

.show-affiliation-btn.active .affiliation-icon {
    transform: rotate(45deg);
}


/* MOBILE */

@media (max-width: 700px) {

    .show-affiliation-btn {
        padding: 7px 11px;
        font-size: 12px;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

    .record-title-row h1 {
        font-size: 33px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .record-main-header {
        margin-bottom: 24px;
    }


    /* FIRST ROW */

    .record-meta-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;

        gap: 10px;

        margin-bottom: 17px;
    }

    .record-meta-left {
        width: 100%;

        display: flex;
        flex-wrap: wrap;

        font-size: 13px;
    }

    .record-meta-right {
        width: 100%;

        justify-content: flex-start;

        margin-left: 0;
    }


    /* TITLE */

    .record-title-row {
        display: block;

        margin-bottom: 16px;
    }

    .record-title-row h1 {
        width: 100%;

        font-size: 28px;
        line-height: 1.2;
    }


    /* OWNER ACTIONS */

    .record-owner-actions {
        justify-content: flex-start;

        margin-top: 13px;
    }


    /* CREATOR ROW */

    .record-creator-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;

        gap: 7px;
    }

    .record-creator-info {
        width: 100%;
    }

    .show-affiliation-btn {
        align-self: flex-start;
    }

    .record-creator-info .affiliation-inline.show {
        display: block;

        margin:
            6px
            0
            0;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .record-meta-row {
        font-size: 12px;
    }

    .record-meta-left {
        gap: 5px;
    }

    .record-title-row h1 {
        font-size: 25px;
    }

    .record-meta-right .type-badge,
    .open-access-badge {
        min-height: 26px;
        padding: 4px 9px;
        font-size: 11px;
    }

    .record-creator-info {
        font-size: 14px;
    }

}
/* =========================================================
   PROFILE AVATAR FIX
   Keeps uploaded image completely inside circle
========================================================= */
.profile-card .profile-avatar {
    position: relative !important;
    width: 76px !important;
    height: 76px !important;
    min-width: 76px !important;
    min-height: 76px !important;
    flex: 0 0 76px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    background: #0879b5 !important;
    border: 3px solid #ffffff !important;
    box-shadow: 0 0 0 1px #dbe5f0, 0 3px 10px rgba(15, 23, 42, .12) !important;
    box-sizing: border-box !important;
}

.profile-card .profile-avatar img,
.profile-card .profile-avatar .profile-avatar-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center center !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    transform: none !important;
}

.profile-card .profile-avatar .profile-avatar-letter {
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    color: #ffffff !important;
    font-size: 30px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
}

@media (max-width: 640px) {
    .profile-card .profile-avatar {
        width: 62px !important;
        height: 62px !important;
        min-width: 62px !important;
        min-height: 62px !important;
        flex: 0 0 62px !important;
    }

    .profile-card .profile-avatar .profile-avatar-letter {
        font-size: 25px !important;
    }
}

/* =========================================================
   PUBLIC PROFILE BIO - JUSTIFIED
========================================================= */

.profile-card .profile-bio {
    width: 100% !important;
    max-width: 100% !important;

    text-align: justify !important;
    text-justify: inter-word !important;

    line-height: 1.75 !important;

    overflow-wrap: anywhere;
    word-break: normal;

    margin-top: 14px;
    margin-bottom: 14px;
}

/* =========================================================
   PROFILE LINKS - SLEEK RESOURCE TYPE STYLE
========================================================= */

.profile-link-section {
    margin-top: 10px;
    margin-bottom: 0;
}

.profile-link-title {
    margin: 0 0 5px;
    color: #6c7d89;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
}

.profile-link-section .profile-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
}

.profile-link-section .profile-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;

    min-height: 25px;
    padding: 3px 9px;

    border: 1px solid #d9e2ec;
    border-radius: 5px;

    background: #f8fafc;
    color: #1769aa !important;

    font-size: 12px;
    font-weight: 650;
    line-height: 1;

    white-space: nowrap;
    text-decoration: none !important;

    box-shadow: none;
    transform: none;

    transition:
        background .15s ease,
        border-color .15s ease,
        color .15s ease;
}

.profile-link-section .profile-links a:hover {
    background: #eef7fb;
    border-color: #b7d7e6;
    color: #075d8b !important;
    box-shadow: none;
    transform: none;
}

.profile-link-section .profile-link-icon {
    display: none;
}

.profile-link-section .profile-link-label {
    white-space: nowrap;
}

.profile-link-section .profile-link-arrow {
    margin: 0;
    color: #7194a7;
    font-size: 10px;
    line-height: 1;
    transform: none;
}

.profile-link-section .profile-links a:hover .profile-link-arrow {
    color: #075d8b;
    transform: none;
}

.profile-link-section .profile-links a:focus-visible {
    outline: 3px solid rgba(8,121,181,.15);
    outline-offset: 2px;
}

@media (max-width: 640px) {
    .profile-link-section {
        margin-top: 9px;
    }

    .profile-link-section .profile-links {
        gap: 5px;
    }

    .profile-link-section .profile-links a {
        min-height: 24px;
        padding: 3px 8px;
        font-size: 11px;
    }
}


/* =========================================================
   ZANODO FOOTER - TWO COLUMNS
   LEFT: Notice | RIGHT: ZANODO
========================================================= */
.zanodo-footer-main{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);
    gap:60px;
    align-items:start;
}
.zanodo-footer-main > div{
    min-width:0;
}
.zanodo-footer-main p{
    margin:10px 0 0;
    line-height:1.7;
}
@media(max-width:800px){
    .zanodo-footer-main{
        grid-template-columns:1fr;
        gap:28px;
        text-align:center;
    }
    .zanodo-footer-main > div{
        width:100%;
        text-align:center;
    }
    .zanodo-footer-main p{
        max-width:600px;
        margin:10px auto 0;
        text-align:center !important;
    }
}


/* =========================================================
   FOOTER DESKTOP FORCE: LEFT + RIGHT
========================================================= */
footer .zanodo-footer-main{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:70px !important;
}
footer .zanodo-footer-main .footer-notice,
footer .zanodo-footer-main .footer-site{
    display:block !important;
    width:calc(50% - 35px) !important;
    flex:0 0 calc(50% - 35px) !important;
    min-width:0 !important;
}
footer .zanodo-footer-main .footer-notice{
    order:1 !important;
    text-align:left !important;
}
footer .zanodo-footer-main .footer-site{
    order:2 !important;
    text-align:left !important;
}
footer .zanodo-footer-main p{
    width:100% !important;
    max-width:none !important;
    margin:10px 0 0 !important;
    text-align:justify !important;
}

@media(max-width:800px){
    footer .zanodo-footer-main{
        flex-direction:column !important;
        gap:26px !important;
    }
    footer .zanodo-footer-main .footer-notice,
    footer .zanodo-footer-main .footer-site{
        width:100% !important;
        flex:0 0 auto !important;
        text-align:center !important;
    }
    footer .zanodo-footer-main p{
        max-width:600px !important;
        margin:10px auto 0 !important;
        text-align:center !important;
    }
}


/* =========================================================
   MAIN FOOTER - SAME LEFT/RIGHT ALIGNMENT AS BOTTOM ROW
   Notice = far left | ZANODO = far right
========================================================= */
@media (min-width:801px){
    footer .zanodo-footer-main{
        display:flex !important;
        flex-direction:row !important;
        align-items:flex-start !important;
        justify-content:space-between !important;
        width:min(1180px,calc(100% - 36px)) !important;
        gap:80px !important;
    }

    footer .zanodo-footer-main .footer-notice{
        width:46% !important;
        flex:0 1 46% !important;
        margin:0 !important;
        text-align:left !important;
    }

    footer .zanodo-footer-main .footer-site{
        width:38% !important;
        flex:0 1 38% !important;
        margin:0 0 0 auto !important;
        text-align:right !important;
    }

    footer .zanodo-footer-main .footer-notice b{
        display:block !important;
        text-align:left !important;
    }

    footer .zanodo-footer-main .footer-site b{
        display:block !important;
        text-align:right !important;
    }

    footer .zanodo-footer-main .footer-notice p{
        text-align:left !important;
    }

    footer .zanodo-footer-main .footer-site p{
        text-align:right !important;
    }
}


/* =========================================================
   ZANODO MOBILE FOOTER - FINAL FIX
   1. Footer paragraphs justified on mobile
   2. Footer menu appears before copyright
   3. "All rights reserved" stays last
========================================================= */
@media (max-width: 800px) {

    footer .zanodo-footer-main p {
        width: 100% !important;
        max-width: 600px !important;
        margin: 10px auto 0 !important;
        text-align: justify !important;
        text-justify: inter-word !important;
    }

    footer .copy {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 14px !important;
    }

    footer .footer-bottom-menu {
        order: 1 !important;
        width: 100% !important;
        margin-left: 0 !important;
        justify-content: center !important;
        text-align: center !important;
    }

    footer .footer-copyright {
        order: 2 !important;
        width: 100% !important;
        margin-left: 0 !important;
        text-align: center !important;
        white-space: normal !important;
    }
}


/* =========================================================
   ZANODO FOOTER SOCIAL PROFILES - FINAL
   Desktop: Menu | Social Icons | Copyright
   Mobile : Menu
            Social Icons
            Copyright (last)
========================================================= */

footer .copy {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
}

footer .footer-bottom-menu {
    order: 1 !important;
    margin-left: 0 !important;
}

footer .footer-social {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-left: auto !important;
}

footer .footer-social a {
    width: 30px !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(255,255,255,.38) !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

footer .footer-social a:hover {
    background: rgba(255,255,255,.12) !important;
    border-color: rgba(255,255,255,.75) !important;
    text-decoration: none !important;
    
}

footer .footer-copyright {
    order: 3 !important;
    margin-left: 0 !important;
}

/* Main footer text remains justified */
footer .zanodo-footer-main p {
    text-align: justify !important;
    text-justify: inter-word !important;
}

@media (max-width: 800px) {

    footer .zanodo-footer-main p {
        width: 100% !important;
        max-width: 600px !important;
        margin: 10px auto 0 !important;
        text-align: justify !important;
        text-justify: inter-word !important;
    }

    footer .copy {
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
    }

    footer .footer-bottom-menu {
        order: 1 !important;
        width: 100% !important;
        margin: 0 !important;
        justify-content: center !important;
    }

    footer .footer-social {
        order: 2 !important;
        width: 100% !important;
        margin: 2px 0 !important;
    }

    footer .footer-copyright {
        order: 3 !important;
        width: 100% !important;
        margin: 0 !important;
        text-align: center !important;
        white-space: normal !important;
    }
}


/* =========================================================
   ZANODO PAGESPEED / ABOVE-THE-FOLD OPTIMIZATION
   Keeps the existing visual design.
========================================================= */

/* Reserve the logo box and avoid image baseline/layout work. */
.logo {
    min-width: 1px;
}
.logo img {
    width: auto;
    height: auto;
    aspect-ratio: 210 / 44;
}

/* Browser may skip layout/paint work for sections well below the viewport. */
main .features,
footer {
    content-visibility: auto;
    contain-intrinsic-size: auto 320px;
}

/* Reduce paint propagation from cards while preserving layout. */
.cards .card {
    contain: layout paint;
}

/* Respect users who request reduced motion and avoid unnecessary animation work. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
