/* Academic CV uses the shared DrVPS palette and typography. */
.academic-cv,.cv-studio{--cv-gap:20px;color:var(--ink)}
.cv-profile-card,.cv-public-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.cv-profile-card{padding:26px;border-top:4px solid var(--accent);margin-bottom:20px}
.cv-profile-top{display:flex;align-items:center;gap:22px}.cv-portrait{flex:0 0 112px;height:112px;background:var(--soft);border:1px solid var(--line);border-radius:18px;display:grid;place-items:center;overflow:hidden}.cv-portrait img{width:100%;height:100%;object-fit:cover}.cv-portrait>span{font-size:52px;font-weight:800;color:var(--accent)}
.cv-profile-main{flex:1;min-width:0}.cv-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--accent);margin:0 0 6px}.cv-profile-main h1{font-size:clamp(26px,3vw,38px);line-height:1.5;margin:0}.cv-headline{font-size:17px;font-weight:600;margin:4px 0}.cv-affiliation,.cv-contacts{color:var(--muted);font-size:13px;margin:7px 0}.cv-contacts{display:flex;flex-wrap:wrap;gap:14px}.cv-downloads{display:flex;align-items:stretch;flex-direction:column;gap:8px;min-width:165px}.cv-downloads .button,.cv-downloads button{justify-content:center}.academic-cv .cv-downloads button.secondary{background:var(--surface-alt);color:var(--ink);border-color:var(--line)}.cv-edit-link,.cv-text-button{font-size:12px;background:none;border:0;color:var(--accent);display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px}.cv-edit-link svg{width:15px}
.cv-profile-links{display:flex;flex-wrap:wrap;gap:8px;padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}.cv-profile-links a,.cv-entry-links a{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;color:var(--accent);padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface-alt)}.cv-profile-links svg,.cv-entry-links svg{width:12px;height:12px}.cv-biography{margin-top:18px;max-width:100%;font-size:14px}.cv-biography p:last-child{margin-bottom:0}.cv-interests{margin-top:18px}.cv-interests h2{font-size:13px;margin-bottom:8px}.cv-profile-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:18px}
.cv-document-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;align-items:start}.cv-document-grid.cv-no-toc{grid-template-columns:1fr}.cv-toc{position:sticky;top:18px}.cv-toc nav{padding:15px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.cv-toc h2{font-size:12px;padding:0 8px 8px;color:var(--muted)}.cv-toc a{display:flex;align-items:center;gap:8px;padding:8px;border-radius:7px;font-size:12px;color:var(--muted)}.cv-toc a:hover,.cv-toc a[aria-current=true]{background:var(--soft);color:var(--accent)}.cv-toc a>span{flex:1}.cv-toc svg{width:15px;flex-shrink:0}.cv-toc small{font-size:10px}.cv-section-stack{display:grid;gap:var(--cv-gap);min-width:0}.cv-public-section{padding:22px;scroll-margin-top:18px}.cv-section-heading{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:4px}.cv-section-heading .icon-tile{width:34px;height:34px;border-radius:8px}.cv-section-heading svg{width:17px}.cv-section-heading h2{font-size:18px;margin:0;flex:1}.cv-section-count{font-size:11px;color:var(--muted);padding:2px 8px;background:var(--surface-alt);border-radius:6px}
.cv-item{position:relative;padding:20px 0;border-bottom:1px solid var(--line);min-width:0;overflow-wrap:anywhere}.cv-item:last-child{border-bottom:0;padding-bottom:0}.cv-item-heading{display:flex;align-items:baseline;gap:10px}.cv-item h3{font-size:15px;font-weight:750;margin:0;flex:1}.cv-date{font-size:11px;white-space:nowrap;flex-shrink:0;color:var(--accent);font-weight:650}.cv-institution,.cv-venue{font-size:12px;font-weight:600;color:var(--muted);margin:5px 0 8px}.cv-authors{font-size:13px;margin:7px 0 4px}.cv-detail-list{margin:10px 0;display:grid;gap:5px}.cv-detail-list>div{display:flex;gap:8px;font-size:12px;line-height:1.9}.cv-detail-list dt{color:var(--muted);flex-shrink:0;max-width:45%}.cv-detail-list dt:after{content:':'}.cv-detail-list dd{margin:0;color:var(--ink)}.cv-entry-summary{font-size:13px;margin:10px 0;line-height:1.9}.cv-entry-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.cv-details{margin-top:10px;font-size:12px}.cv-details summary{color:var(--accent);cursor:pointer}.cv-details[open] summary{margin-bottom:12px}.cv-details .prose{font-size:13px}.cv-details img,.cv-details video,.cv-biography video,.cv-biography img{max-width:100%;height:auto}.cv-details audio,.cv-biography audio{max-width:100%}.cv-item-number{color:var(--gold);font-size:14px;font-weight:800}.cv-layout-timeline>.cv-item{padding-inline-start:20px}.cv-layout-timeline>.cv-item:before{content:'';position:absolute;inset-inline-start:0;top:26px;width:7px;height:7px;border:2px solid var(--accent);border-radius:50%;background:var(--surface)}.cv-layout-timeline>.cv-item:after{content:'';position:absolute;inset-inline-start:3px;top:40px;bottom:8px;width:1px;background:var(--line)}.cv-layout-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:14px}.cv-layout-cards>.cv-item{border:1px solid var(--line);background:var(--surface-alt);padding:16px;border-radius:10px}.cv-layout-cards .cv-item-heading{flex-wrap:wrap}.cv-layout-cards .cv-date{width:100%}.cv-layout-compact>.cv-item{padding:12px 0}.cv-compact{--cv-gap:14px}.cv-compact .cv-public-section{padding:18px 20px}.cv-compact .cv-item{padding-top:15px;padding-bottom:15px}.cv-preview-note{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.cv-preview-note p{flex:1;margin:0}.cv-preview-status{display:inline-block;margin-top:8px;color:var(--gold);font-size:11px}
.cv-studio-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.cv-studio-heading h1{font-size:28px;margin:4px 0}.cv-studio-heading p:not(.eyebrow){color:var(--muted);font-size:13px;margin:4px 0}.cv-studio-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:18px}.cv-studio-tabs a{display:flex;align-items:center;gap:7px;padding:11px 16px;font-size:13px;font-weight:650;color:var(--muted);border-bottom:3px solid transparent}.cv-studio-tabs a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent);background:var(--soft);border-radius:8px 8px 0 0}.cv-studio-tabs svg{width:17px}.cv-stats{display:grid;grid-template-columns:repeat(3,1fr) 1.5fr;gap:12px;margin-bottom:18px}.cv-stats>div,.cv-stats>a{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:16px}.cv-stats strong{font-size:25px;display:block;color:var(--accent)}.cv-stats span{font-size:12px;color:var(--muted)}.cv-stats>a{display:flex;align-items:center;gap:12px;background:var(--soft)}.cv-stats>a span{flex:1;color:var(--accent);font-weight:700}.cv-manager-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.cv-section-picker h2,.cv-form-section h2,.cv-save-panel h2,.cv-photo-panel h2{font-size:16px;margin-bottom:14px}.cv-section-picker>p{font-size:12px}.cv-section-picker>a{display:flex;align-items:center;gap:8px;padding:9px 4px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink)}.cv-section-picker>a svg{width:16px;flex-shrink:0;color:var(--accent)}.cv-section-picker>a>span{flex:1}.cv-section-picker>a small{color:var(--muted);font-size:10px}.cv-section-picker>a>span small{display:block;color:var(--gold)}.cv-section-picker>a:hover{background:var(--soft)}.cv-filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.cv-filters label:first-child{flex:1;min-width:150px}.cv-filters select{max-width:175px}.cv-filters input,.cv-filters select{font-size:12px;padding:9px;min-height:40px;width:100%}.cv-manage-record{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.cv-manage-record>div:first-child{min-width:0;flex:1}.cv-record-title{display:block;font-weight:700;font-size:15px;margin:4px 0}.cv-manage-record p{font-size:12px;color:var(--muted);margin:5px 0}.cv-record-actions{display:flex;gap:5px;align-items:center}.cv-record-actions form{margin:0}.cv-trash-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;margin-top:18px}.cv-trash-link svg{width:15px}.cv-manager-grid .panel{margin:0}.cv-records{min-width:0}
.cv-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px;align-items:start}.cv-editor-grid>div,.cv-editor-grid>aside{min-width:0}.cv-form-section{margin-bottom:16px}.cv-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cv-field{min-width:0}.cv-field>label{display:block;font-size:12px;font-weight:650;margin-bottom:7px}.cv-field input:not([type=checkbox]),.cv-field textarea,.cv-field select{width:100%;font-size:13px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:10px;min-height:42px}.cv-field:has(textarea),.cv-field:has(.drvps-editor){grid-column:1/-1}.cv-field small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.cv-check>label{display:flex;align-items:center;gap:8px;font-weight:500;line-height:1.8}.cv-check input{width:17px;height:17px;flex-shrink:0}.cv-save-panel{position:sticky;top:15px}.cv-save-panel .cv-field{margin-bottom:14px}.cv-save-panel>button{width:100%;justify-content:center;margin:10px 0}.cv-save-panel>a{display:flex;justify-content:center;gap:7px;font-size:12px;margin:10px 0}.cv-save-panel>a svg{width:15px}.cv-form-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:16px 0;margin-top:10px}.cv-errors{display:flex;flex-direction:column;align-items:start;gap:8px}.cv-errors a{font-size:12px}.cv-photo-preview{width:140px;height:140px;border-radius:14px;overflow:hidden;background:var(--soft);border:1px solid var(--line);margin:0 auto 16px;display:grid;place-items:center}.cv-photo-preview img{width:100%;height:100%;object-fit:cover}.cv-photo-preview svg{width:44px;height:44px;color:var(--accent)}.cv-photo-panel>button,.cv-upload-label{width:100%;margin:4px 0;justify-content:center}.cv-upload-label{position:relative;cursor:pointer}.cv-upload-label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.cv-photo-panel>[role=status]{font-size:12px;color:var(--muted)}.cv-layout-row{padding:16px 0;border-bottom:1px solid var(--line)}.cv-layout-name{display:flex;align-items:center;gap:9px;margin-bottom:12px}.cv-layout-name strong{font-size:14px;flex:1}.cv-layout-name .icon-tile{width:32px;height:32px}.cv-layout-name svg{width:15px}.cv-move-buttons{display:flex;gap:4px}.cv-layout-fields{display:grid;grid-template-columns:65px 1.4fr 1fr 1fr auto;gap:12px;align-items:center}.cv-layout-fields label{font-size:11px}.cv-layout-fields .cv-field input,.cv-layout-fields select{font-size:12px}.cv-layout-fields .cv-check{align-self:end;padding-bottom:10px}
.cv-media-dialog{width:min(680px,94vw);padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}.cv-media-dialog form{display:flex;gap:8px;margin:12px 0}.cv-media-dialog input{flex:1;min-width:0;padding:10px}.cv-media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-height:55vh;overflow:auto}.cv-media-grid button{padding:0;display:flex;flex-direction:column;gap:4px;overflow:hidden;background:var(--surface-alt);color:var(--ink);border:1px solid var(--line);min-width:0}.cv-media-grid img{width:100%;height:105px;object-fit:cover}.cv-media-grid span{font-size:11px;padding:5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-media-dialog::backdrop{background:#102b3880}.cv-hidden-date[hidden]{display:none!important}
@media(max-width:1050px){.cv-editor-grid{grid-template-columns:minmax(0,1fr) 230px}.cv-manager-grid{grid-template-columns:220px minmax(0,1fr)}.cv-layout-fields{grid-template-columns:65px 1.4fr 1fr}.cv-studio-heading{flex-wrap:wrap}.cv-document-grid{grid-template-columns:195px minmax(0,1fr)}}
@media(max-width:760px){.cv-profile-card{padding:18px}.cv-profile-top{gap:14px;flex-wrap:wrap}.cv-portrait{flex-basis:82px;height:82px;border-radius:12px}.cv-profile-main h1{font-size:25px}.cv-downloads{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center}.cv-downloads .cv-edit-link{margin-inline-start:auto}.cv-document-grid{display:block}.cv-toc{position:static;margin-bottom:14px}.cv-toc nav{display:flex;flex-wrap:wrap;gap:3px;padding:10px}.cv-toc h2{width:100%;margin:0}.cv-toc a{font-size:11px;padding:5px 8px;border:1px solid var(--line);gap:5px}.cv-toc svg{display:none}.cv-section-stack{gap:14px}.cv-item-heading{flex-wrap:wrap}.cv-date{width:100%;margin-top:2px}.cv-layout-cards{grid-template-columns:1fr}.cv-public-section,.cv-compact .cv-public-section{padding:16px}.cv-detail-list>div{flex-wrap:wrap;gap:3px 7px}.cv-detail-list dt{max-width:100%}.cv-manager-grid,.cv-editor-grid{grid-template-columns:1fr}.cv-section-picker{max-height:310px;overflow:auto}.cv-stats{grid-template-columns:repeat(3,1fr)}.cv-stats>a{grid-column:1/-1}.cv-stats>div{padding:12px}.cv-stats span{font-size:10px}.cv-studio-tabs a{padding:10px;font-size:12px;gap:5px}.cv-studio-tabs svg{display:none}.cv-layout-fields{grid-template-columns:65px 1fr}.cv-layout-fields .cv-field:nth-child(3),.cv-layout-fields .cv-field:nth-child(4){grid-column:auto}.cv-layout-fields .cv-check{grid-column:1/-1}.cv-save-panel{position:static}.cv-media-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:460px){.cv-form-grid{grid-template-columns:1fr}.cv-studio-heading h1{font-size:24px}.cv-manage-record{align-items:start}.cv-record-actions{flex-direction:column}.cv-profile-main{flex-basis:calc(100% - 100px)}.cv-headline{font-size:14px}.cv-profile-meta{font-size:10px}.cv-media-grid{grid-template-columns:repeat(2,1fr)}}
@media print{@page{size:A4;margin:15mm}.public-header,.sidebar,.app-topbar,.app-footer,#palette,.skip,.cv-downloads,.cv-toc,.cv-preview-note,.cv-preview-status{display:none!important}html,body,.public-shell,.app-frame{background:white!important;color:#172d3a!important}.public-shell main{max-width:none;padding:0}.academic-cv{font-size:10pt}.cv-document-grid{display:block}.cv-profile-card,.cv-public-section{border:0;border-radius:0;box-shadow:none;padding:0!important;background:white;margin-bottom:20px}.cv-profile-card{border-bottom:1px solid #999;padding-bottom:12px!important}.cv-profile-main h1{font-size:22pt}.cv-section-heading h2{font-size:14pt}.cv-section-heading{break-after:avoid}.cv-item{break-inside:avoid}.cv-item h3{font-size:11pt}.cv-layout-cards{display:block}.cv-layout-cards>.cv-item{border:0;border-bottom:1px solid #ddd;background:white;padding:12px 0}.cv-profile-links a,.cv-entry-links a{border:0;background:none;padding:0 5px;font-size:9pt}.cv-item:before,.cv-item:after{display:none}.cv-layout-timeline>.cv-item{padding-inline-start:0}.cv-details .prose{display:block!important}.cv-details summary{display:none}.cv-portrait{width:80px;height:80px;flex-basis:80px}.cv-detail-list>div{font-size:9pt}.cv-date{font-size:9pt}.cv-section-stack{display:block}}
