/* Shared editorial outputs use the active theme and viewport geometry. */
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--ev-font,system-ui);background:var(--ev-bg);color:var(--ev-text)}
.edu-wisdom-output .web-shell,.edu-news-output .shell{padding:clamp(10px,1.5vmin,28px);width:100%;min-height:100dvh;margin:0}
.edu-wisdom-output #display{min-height:0;min-width:0;flex:1;display:flex}.edu-wisdom-output .web-shell{height:100dvh;display:flex}.edu-wisdom-output .web-header{display:none}
.edu-wisdom-output .panel{width:100%;min-width:0;display:flex;flex-direction:column;gap:clamp(8px,1.4vmin,28px);min-height:0}
.edu-wisdom-output .head,.edu-news-output .header{display:flex;align-items:center;gap:clamp(10px,2vmin,32px);background:var(--ev-primary);color:var(--ev-primary-text);padding:clamp(10px,2vmin,30px);border-radius:var(--ev-card-radius);flex-shrink:0}
.edu-wisdom-output h1{font-size:clamp(18px,3.4vmin,60px);font-weight:600;margin:0}.edu-wisdom-output .topic{margin-left:auto;font-size:clamp(12px,2vmin,32px)}
.edu-wisdom-output .content{background:var(--ev-surface);border:1px solid var(--ev-border);border-radius:var(--ev-card-radius);padding:clamp(12px,3vmin,64px);display:flex;flex:1;min-height:0;min-width:0;flex-direction:column;justify-content:center;gap:clamp(10px,3vmin,40px);overflow:hidden}
.edu-wisdom-output .quote{margin:0;font-size:clamp(22px,6vmin,100px);line-height:1.3;font-weight:500;overflow-wrap:break-word}.edu-wisdom-output .author{font-size:clamp(16px,3vmin,48px);font-weight:600}.edu-wisdom-output .work,.edu-wisdom-output .source-link{font-size:clamp(12px,1.8vmin,30px);color:var(--ev-muted)}.edu-wisdom-output .footer{font-size:clamp(10px,1.3vmin,20px);color:var(--ev-muted)}
.edu-news-output .shell{display:flex;flex-direction:column;gap:clamp(8px,1.2vmin,24px)}.edu-news-output.nsp .shell{height:100dvh;overflow:hidden}.edu-news-output .brand{display:flex;gap:16px;align-items:center}.edu-news-output .edu-app-label{font-size:clamp(20px,3.4vmin,60px);font-weight:600}.edu-news-output .status{margin-left:auto;font-size:clamp(12px,1.6vmin,28px)}
.edu-news-output .grid{display:grid;gap:clamp(8px,1.2vmin,24px);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));flex:1;min-height:0}.edu-news-output .card{display:flex;flex-direction:column;background:var(--ev-surface);border:1px solid var(--ev-border);border-radius:var(--ev-card-radius);overflow:hidden;min-width:0;min-height:0}.edu-news-output .card.side-media{flex-direction:row}.edu-news-output .media{position:relative;flex:0 0 35%;min-height:0;overflow:hidden;background:var(--ev-secondary);color:var(--ev-secondary-text);display:grid;place-items:center}.edu-news-output .media svg{width:30%;max-height:60%;stroke:currentColor}.edu-news-output .media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.edu-news-output.image-contain .media img{object-fit:contain}.edu-news-output .loaded-photo svg{display:none}.edu-news-output .media.missing-photo{display:none}.edu-news-output.no-image .media{display:none}.edu-news-output .content{display:flex;flex-direction:column;gap:clamp(6px,1vmin,18px);padding:clamp(12px,2vmin,36px);min-height:0;min-width:0;flex:1;overflow:hidden}.edu-news-output .title{font-size:var(--news-title,clamp(20px,2.8vmin,54px));line-height:1.25;margin:0;font-weight:600;overflow:hidden;overflow-wrap:break-word}.edu-news-output .summary{font-size:var(--news-text,clamp(16px,2vmin,36px));line-height:1.5;margin:0;overflow:hidden}.edu-news-output .date,.edu-news-output .detail,.edu-news-output .footer{font-size:clamp(12px,1.6vmin,26px);color:var(--ev-muted)}.edu-news-output .footer{display:flex;justify-content:space-between;flex-shrink:0}.edu-news-output a{color:var(--ev-primary)}
@media(max-aspect-ratio:4/5){.edu-news-output .header .brand{flex:1}.edu-news-output .edu-app-label{font-size:clamp(20px,3.4vmin,60px);font-weight:600}.edu-news-output .status{display:none}}
@media(min-aspect-ratio:27/10){.edu-news-output .header{padding:1vmin}.edu-news-output .content{padding:2vmin}}

.edu-wisdom-output .head .edu-app-icon,.edu-news-output .header .edu-app-icon{--edu-icon-size:clamp(36px,6vmin,120px)}

/* News-specific cards use the same active theme in all three output modes. */
html[data-kiosk-app="news"][data-output-mode] #news{gap:var(--news-card-gap,18px)!important;min-width:0}
html[data-kiosk-app="news"][data-output-mode] #news .card{border-radius:var(--ev-card-radius);min-width:0;min-height:0;margin:0!important}
html[data-kiosk-app="news"][data-output-mode] #news .content{padding:var(--news-card-pad,20px)!important;gap:calc(var(--news-card-body,22px)*.4);min-width:0}
html[data-kiosk-app="news"][data-output-mode] #news .title{font-size:var(--news-card-title,28px)!important;line-height:1.22!important;font-weight:650;overflow-wrap:anywhere}
html[data-kiosk-app="news"][data-output-mode] #news .summary{font-size:var(--news-card-body,22px)!important;line-height:1.45!important;overflow-wrap:anywhere}
html[data-kiosk-app="news"][data-output-mode] #news :is(.date,.detail){font-size:var(--news-card-meta,16px)!important;line-height:1.3!important}
html[data-kiosk-app="news"][data-output-mode] #news .media{flex:0 0 auto;width:100%;height:var(--news-card-media-height,200px);min-width:0;min-height:0}
html[data-kiosk-app="news"][data-output-mode] #news .media.missing-photo{display:none!important}
html[data-kiosk-app="news"][data-output-mode] #news .media img{object-fit:cover}
html[data-kiosk-app="news"][data-output-mode] body.image-contain #news .media img{object-fit:contain}
html[data-kiosk-app="news"].nsp-output #news .card{display:flex;flex-direction:column;overflow:hidden}
html[data-kiosk-app="news"].nsp-output #news .card.side-media{flex-direction:row}
html[data-kiosk-app="news"].nsp-output #news .content{flex:1;overflow:hidden}
html[data-kiosk-app="news"].nsp-output #news .title{flex:none}
html[data-kiosk-app="news"].nsp-output .status:empty{display:none}
html[data-kiosk-app="news"][data-output-mode].web-output #news{display:grid!important;grid-template-columns:minmax(0,1fr)!important;margin-top:24px}
html[data-kiosk-app="news"][data-output-mode].web-output #news .card{display:flex!important;flex-direction:column!important;overflow:hidden!important}
html[data-kiosk-app="news"][data-output-mode].web-output #news .media{height:clamp(160px,30vw,320px)!important;flex:none!important;width:100%!important}
html[data-kiosk-app="news"][data-output-mode].web-output #news .content{flex:none!important;min-width:0;overflow:visible!important}
html[data-kiosk-app="news"][data-output-mode].web-output #news :is(.title,.summary){max-height:none!important;white-space:normal!important;overflow:visible!important}
/* Source-independent placement: portrait is above, all other viewports are left. */
html[data-kiosk-app="news"][data-output-mode].web-output #news .card.side-media.has-photo{display:grid!important;grid-template-columns:minmax(0,32%) minmax(0,1fr)!important}
html[data-kiosk-app="news"][data-output-mode].web-output #news .card.side-media.has-photo .media{height:auto!important;aspect-ratio:4/5;min-height:0!important;max-height:360px;width:calc(100% - var(--news-card-pad,20px))!important;margin:var(--news-card-pad,20px) 0 var(--news-card-pad,20px) var(--news-card-pad,20px);align-self:start;border-radius:var(--ev-control-radius,10px)}



/* Kiosk previews may render at 4K: cap the number of columns, not just their minimum width. */
html[data-kiosk-app="news"][data-output-mode].web-output #news .title{font-size:20px!important}
html[data-kiosk-app="news"][data-output-mode].web-output #news .summary{font-size:16px!important;line-height:1.5!important}
html[data-kiosk-app="news"][data-output-mode].web-output #news :is(.date,.detail){font-size:13px!important}

/* Kiosk uses the landscape 6/2 and portrait 2/2 signage card composition. */
html[data-kiosk-app="news"].kiosk-output .footer{align-items:center;gap:12px}

/* Wisdom: category belongs to the heading; quote, author and work form one figure. */
html[data-kiosk-app="wisdom"][data-output-mode] .head.edu-output-header{display:flex!important;flex-wrap:nowrap!important;align-items:center!important}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-heading{display:flex;flex-direction:column;justify-content:center;gap:.3em;min-width:0;flex:1}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-heading .topic{margin:0!important;width:auto!important;line-height:1.25!important}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-quotation{margin:0;gap:clamp(20px,3vmin,48px);text-align:left}
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output .content>.quote{font-size:clamp(28px,calc(var(--edu-text-body,24px)*1.6),110px)!important;line-height:1.35!important;font-weight:500;max-width:100%;width:100%;flex:0 0 auto}
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output .content>.quote[data-length="long"]{font-size:clamp(24px,calc(var(--edu-text-body,24px)*1.25),80px)!important}
html[data-kiosk-app="wisdom"][data-output-mode] .attribution{display:flex;flex:0 0 auto;flex-direction:column;gap:.45em;align-items:flex-start;max-width:60em}
html[data-kiosk-app="wisdom"][data-output-mode] .attribution .author{font-size:clamp(20px,var(--edu-text-body,24px),64px)!important;line-height:1.25!important;font-weight:700;color:var(--ev-text)}
html[data-kiosk-app="wisdom"][data-output-mode] .attribution :is(.work,.source-link){font-size:clamp(16px,var(--edu-text-label,18px),40px)!important;line-height:1.4!important}
html[data-kiosk-app="wisdom"][data-output-mode] .footer{font-size:clamp(14px,var(--edu-text-caption,16px),30px)!important;line-height:1.4!important}
html[data-kiosk-app="wisdom"].web-output .edu-wisdom-output .content>.quote{font-size:28px!important}
html[data-kiosk-app="wisdom"].web-output .wisdom-quotation{gap:28px!important;padding:28px!important}
html[data-kiosk-app="wisdom"].web-output .attribution :is(.work,.source-link){font-size:16px!important}
html[data-kiosk-app="wisdom"].web-output .footer{font-size:14px!important}

/* The shared header owns the heading geometry in every segment. */
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-heading{max-width:100%;overflow:hidden}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-quotation{min-width:0}
html[data-kiosk-app="wisdom"][data-output-mode] .quote{width:100%;max-width:100%;min-width:0;overflow-wrap:break-word}

html[data-kiosk-app="news"][data-output-mode]:not(.web-output) #news .card{container-type:normal}


/* Kiosk uses the same image-above-text cards and layout policy as signage. */
html[data-kiosk-app="news"][data-output-mode].kiosk-output #news{grid-auto-rows:minmax(0,1fr)!important;align-content:stretch!important;flex:1 1 0%!important;overflow:hidden!important}
html[data-kiosk-app="news"][data-output-mode].kiosk-output #news .card{display:flex!important;flex-direction:column!important;height:100%!important;overflow:hidden!important}
html[data-kiosk-app="news"][data-output-mode].kiosk-output #news .content{flex:1 1 0%!important;min-height:0!important;overflow:hidden!important}
html[data-kiosk-app="news"][data-output-mode].kiosk-output #news :is(.title,.summary){overflow:hidden!important}
.news-page-controls{display:flex;gap:12px;margin-left:auto;flex:none}
.news-page-controls .edu-pagination-button{font-size:clamp(16px,var(--edu-text-caption,20px),36px);min-height:44px;padding:.4em .75em}
.news-page-controls .edu-pagination-status{font-size:clamp(14px,var(--edu-text-caption,18px),32px)}

/* Choose image placement from the actual card geometry, shared by NSP and kiosk. */
html[data-kiosk-app="news"][data-output-mode]:not(.web-output) #news .card.side-media{display:grid!important;grid-template-columns:minmax(0,32%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;align-items:stretch;isolation:isolate;background:var(--ev-surface);border:1px solid var(--ev-border);overflow:hidden}
html[data-kiosk-app="news"][data-output-mode]:not(.web-output) #news .card.side-media .media{flex:none;width:auto;height:var(--news-card-media-height,200px);max-height:calc(100% - 2*var(--news-card-pad,20px));align-self:start;min-height:0;margin:var(--news-card-pad,20px) 0 var(--news-card-pad,20px) var(--news-card-pad,20px);border-radius:var(--ev-control-radius,10px)}
html[data-kiosk-app="news"][data-output-mode]:not(.web-output) #news .card.side-media .content{width:auto;height:100%;min-width:0;min-height:0;overflow:hidden;position:relative}
html[data-kiosk-app="news"][data-output-mode] #news .card.side-media:not(.has-photo){grid-template-columns:minmax(0,1fr)!important}

/* Wisdom feature card: shared by web, kiosk and every Newline segment.
   Header colors and geometry remain owned by the shared header/theme system. */
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output #display .wisdom-quotation{
 position:relative;isolation:isolate;overflow:hidden!important;justify-content:center;
 padding:clamp(20px,5vmin,96px)!important;gap:clamp(16px,3vmin,48px)!important;
 box-shadow:0 12px 36px color-mix(in srgb,var(--ev-text) 4%,transparent);
}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-quotation::before{
 content:"“";position:absolute;z-index:-1;pointer-events:none;right:4%;top:-.2em;
 font-family:Georgia,serif;font-size:clamp(180px,35vmin,640px);line-height:1;
 color:var(--ev-primary);opacity:.07;
}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-category{
 display:flex;align-items:center;gap:.7em;flex:none;min-width:0;
 font-size:clamp(14px,1.8vmin,36px);line-height:1.3;font-weight:700;
 letter-spacing:.09em;text-transform:uppercase;color:var(--ev-primary);
}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-category::before{
 content:"";width:2em;height:3px;flex:none;background:currentColor;
}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-category:empty{display:none}
html[data-kiosk-app="wisdom"][data-output-mode] .wisdom-heading .topic{display:none}
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output .content>.quote{
 font-size:clamp(38px,6vmin,144px)!important;line-height:1.18!important;
 font-weight:650;letter-spacing:-.025em;max-width:100%;
}
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output .content>.quote[data-length="long"]{
 font-size:clamp(28px,4.5vmin,100px)!important;
}
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output .attribution{
 border-inline-start:4px solid var(--ev-primary);padding-inline-start:.8em;
}
html[data-kiosk-app="wisdom"][data-output-mode] .edu-wisdom-output .attribution .author{
 font-size:clamp(22px,2.8vmin,64px)!important;
}
html[data-kiosk-app="wisdom"].web-output .edu-wisdom-output #display .wisdom-quotation{
 min-height:clamp(360px,56vh,760px)!important;margin-block:24px;
}
html[data-kiosk-app="wisdom"].web-output .edu-wisdom-output #display .content>.quote{
 font-size:clamp(34px,5vw,76px)!important;
}
html[data-kiosk-app="wisdom"].web-output .edu-wisdom-output .attribution .author{
 font-size:clamp(22px,2.4vw,32px)!important;
}
@media(min-aspect-ratio:27/10){
 html[data-kiosk-app="wisdom"][data-output-mode]:not(.web-output) .edu-wisdom-output #display .wisdom-quotation{
 padding:clamp(12px,3vmin,48px)!important;gap:clamp(8px,2vmin,24px)!important;min-height:0!important;
 }
}

/* Stable identity geometry and painting inside scaled administration iframes. */
html[data-kiosk-app="news"][data-output-mode] .edu-news-output .header.edu-output-header{
 display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;
 align-self:stretch!important;width:100%!important;min-width:0!important;max-width:100%;
 box-sizing:border-box;position:relative;isolation:isolate;transform:translateZ(0);
}
html[data-kiosk-app="news"][data-output-mode] .edu-news-output .header.edu-output-header>.brand{
 display:grid!important;grid-template-columns:var(--edu-header-icon) minmax(0,1fr);
 align-items:center!important;align-content:center;min-width:0;max-width:100%;height:100%;
 overflow:visible;
}
html[data-kiosk-app="news"][data-output-mode] .edu-news-output .header.edu-output-header .edu-app-icon{
 align-self:center;justify-self:start;
}
html[data-kiosk-app="news"][data-output-mode] .edu-news-output .header.edu-output-header .edu-app-label{
 align-self:center;min-width:0;max-width:100%;
}
html[data-kiosk-app="news"][data-output-mode] .edu-news-output .header.edu-output-header>.status{
 align-self:center;min-width:0;margin:0;
}
html[data-kiosk-app="news"][data-output-mode] .edu-news-output .header.edu-output-header>.status:empty{display:none!important}
html[data-kiosk-app="news"].edu-menu-app-header .edu-news-output .header.edu-output-header>.brand{grid-template-columns:minmax(0,1fr)}
