.events-page{display:none;grid-column:1/-1;grid-row:2/4;overflow-y:scroll;scrollbar-gutter:stable;min-height:0;background:var(--bg)}
body[data-mode=tapahtumat] .events-page{display:block}body[data-mode=tapahtumat] :is(.titlebar,.palette,.workspace,.inspector){display:none}
.events-container{max-width:1400px;margin:auto;padding:38px 40px 30px}.events-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}.events-heading .eyebrow{margin-bottom:14px}.events-heading h1{font:600 clamp(28px,3vw,38px)/1.15 'Space Grotesk',sans-serif;letter-spacing:-1.2px;margin:0 0 12px}.events-heading p:not(.eyebrow){color:var(--muted);line-height:1.7}.events-heading>.btn{flex-shrink:0;min-height:44px}
.events-status-line{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:22px;font-size:11px;color:var(--muted);line-height:1.7}.events-status-line p{margin:0}.events-status-line button{flex-shrink:0;min-height:35px}
.event-quick-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.event-quick-filters .btn{min-height:42px;font-size:12px}.event-quick-filters .selected{border-color:var(--orange);color:var(--orange);background:var(--orange-bg)}
.event-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:5px}.event-filters .field{margin:0;min-width:0}.event-filters input,.event-filters select{width:100%;min-height:44px}.event-search{grid-column:1/3}.event-checkboxes{grid-column:3/5;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.event-checkboxes label{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;cursor:pointer}.event-checkboxes input{width:17px;min-height:17px;margin:0}.event-filters>.text-button{justify-self:start;min-height:35px}
.event-results-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 17px}.event-results-heading h2{font:600 20px 'Space Grotesk',sans-serif;margin:0}.event-results-heading>span{font-size:11px;color:var(--muted)}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.event-card{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}.event-card-content{padding:21px}.event-image{margin:0;position:relative;background:#0d1315;border-bottom:1px solid var(--line)}.event-image img{display:block;width:100%;height:190px;object-fit:contain}.event-image figcaption{padding:6px 12px;color:var(--muted);font-size:9px;text-align:right}.event-card-top{display:flex;justify-content:space-between;gap:9px;align-items:flex-start;font:11px/1.7 'IBM Plex Mono',monospace;margin-bottom:15px}.event-date{color:var(--orange)}.event-type{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.event-card h2{font:600 21px/1.25 'Space Grotesk',sans-serif;letter-spacing:-.35px;margin:0 0 13px;overflow-wrap:anywhere}.event-location{font-size:12px;line-height:1.6;margin:0 0 5px}.event-organizer{font-size:11px;color:var(--muted);margin:0 0 16px;line-height:1.6}.event-tags{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 15px}.event-tags span{font-size:10px;padding:5px 7px;border:1px solid #42504a;border-radius:3px;color:#ccd6ce}.event-tags .beginner-tag{border-color:#587153;color:#b5d9aa}.event-description{font-size:12px;line-height:1.75;color:#c0cac4;margin:0 0 18px}.event-practical{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:11px;border-top:1px solid var(--line);padding-top:15px}.event-practical strong{font-weight:500}.event-registration{color:var(--muted)}.event-registration.open{color:#b5d9aa}.event-registration.cancelled,.event-registration.full{color:#f1ad9e}.event-registration.waitlist{color:#e0c08a}.event-deadline{font-size:10px;color:var(--muted);line-height:1.6;margin-top:8px}.event-requirements{font-size:11px;line-height:1.8;margin:13px 0;color:var(--muted)}.event-requirements summary{cursor:pointer;color:var(--text);min-height:32px}.event-requirements p{margin:5px 0;white-space:pre-line}.event-card-bottom{margin-top:20px;display:flex;align-items:flex-start;flex-direction:column;gap:12px}.event-card-bottom .btn{font-size:11px;min-height:44px;text-decoration:none}.event-card-bottom>span{font-size:9px;line-height:1.7;color:var(--muted)}.event-sources{font-size:9px;line-height:1.8;color:var(--muted);margin-top:6px}.event-sources a{color:var(--muted)}.event-cancelled{border-color:#855e50}.event-cancelled h2{text-decoration:line-through}.event-footer-note{font-size:11px;line-height:1.8;color:var(--muted);margin:25px 0 0}.events-empty{grid-column:1/-1;padding:48px 25px;border:1px dashed var(--line);text-align:center}.events-empty h2{font:600 25px 'Space Grotesk',sans-serif}.events-empty p{color:var(--muted);line-height:1.8}.event-source-row{padding:16px 0;border-bottom:1px solid var(--line);line-height:1.7}.event-source-row span{display:block;color:var(--muted);font-size:11px}.event-source-row p{font-size:12px;margin:7px 0 0}
@media(max-width:1150px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-tabs a{padding-left:9px;padding-right:9px}.events-container{padding:30px 24px}}
@media(max-width:850px){.event-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.event-checkboxes{grid-column:1/-1}.event-search{grid-column:1/-1}}
@media(min-width:851px) and (max-width:1050px){.app{grid-template-rows:126px 78px minmax(0,1fr) 32px}.header{display:flex;align-items:flex-start;justify-content:space-between;position:relative;padding:16px 24px 0;gap:16px}.header-right{padding-top:5px}.header-right #save-status{max-width:180px;font-size:9px}.mode-tabs,body[data-mode=editor] .mode-tabs{position:absolute;left:24px;right:24px;bottom:0;top:auto;width:auto;height:44px;gap:0;justify-content:stretch}.mode-tabs a{flex:1;font-size:12px;padding:0 12px}.inspector{top:204px}}
@media(max-width:630px){.events-container{padding:26px 15px}.events-heading{align-items:flex-start;flex-direction:column;gap:12px}.events-heading h1{font-size:30px}.events-heading p:not(.eyebrow){font-size:11px}.events-heading>.btn{width:100%}.events-status-line{align-items:flex-start;flex-direction:column;gap:4px}.event-quick-filters{gap:6px}.event-quick-filters .btn{font-size:11px;padding:10px}.event-filters{padding:14px;gap:14px 10px}.event-filters input,.event-filters select{font-size:16px}.event-filters label{font-size:10px}.event-checkboxes{gap:0}.event-checkboxes label{font-size:11px}.event-grid{grid-template-columns:minmax(0,1fr)}.event-results-heading{align-items:flex-start;flex-direction:column;gap:6px}.event-card-content{padding:19px}.event-image img{height:210px}.mode-tabs,.mode-tabs a{min-width:0}.mode-tabs a,body[data-mode=editor] .mode-tabs a{font-size:10px;padding-left:4px;padding-right:4px}.event-card-bottom .btn{width:100%;justify-content:center}.events-page{grid-column:1/-1;grid-row:2/4}}

/* Compact, equal-height event summaries; complete information opens in a dialog. */
.event-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}
.event-card-compact{height:440px;display:flex;flex-direction:column}
.event-card-compact>.event-image{height:120px;flex:0 0 120px;overflow:hidden}
.event-card-compact .event-image img{height:120px}
.event-card-compact .event-image figcaption{position:absolute;bottom:0;right:0;max-width:100%;box-sizing:border-box;background:#0d1315e8;padding:3px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-image-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#18231e,#0d1315);color:#667a6d;font:600 22px 'Space Grotesk',sans-serif;letter-spacing:3px}
.event-card-compact .event-card-content{padding:14px;flex:1;min-height:0;display:flex;flex-direction:column}
.event-card-compact .event-card-top{margin-bottom:8px;gap:5px;font-size:10px;min-height:34px}
.event-card-compact .event-type{text-align:right;font-size:8px}
.event-card-compact h2{font-size:17px;line-height:1.25;margin:0 0 7px;min-height:2.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.event-card-compact .event-location{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}
.event-card-compact :is(.event-organizer,.event-deadline,.event-requirements,.event-sources){display:none}
.event-card-compact .event-tags{flex-wrap:nowrap;overflow:hidden;height:25px;flex-shrink:0;margin-bottom:8px}
.event-card-compact .event-tags span{white-space:nowrap;font-size:9px;padding:4px 6px}
.event-card-compact .event-description{font-size:11px;line-height:1.5;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.event-card-compact .event-practical{margin-top:auto;padding-top:8px;gap:3px;display:flex;flex-direction:column;align-items:flex-start;font-size:10px;min-height:33px}
.event-card-compact .event-practical strong{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-card-compact .event-card-bottom{margin-top:10px;display:grid;grid-template-columns:auto 1fr;gap:7px}
.event-card-compact .event-card-bottom .btn{padding:8px 10px;font-size:10px;justify-content:center;min-height:44px}
.event-card-compact .event-card-bottom>span{display:none}
.event-card-expanded{border:0;background:transparent}
.event-card-expanded .event-card-content{padding:18px 0 0}
.event-card-expanded .event-image img{height:auto;max-height:320px}
@media(max-width:1250px){.event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:950px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:630px){.event-grid{grid-template-columns:minmax(0,1fr)}.event-card-compact{height:420px}.event-card-compact>.event-image,.event-card-compact .event-image img{height:110px;flex-basis:110px}.event-card-compact .event-card-bottom .btn{width:auto}}
.event-card-compact .event-card-content{display:grid;grid-template-rows:34px 44px 18px 25px minmax(38px,1fr) 44px;gap:8px;padding:12px}
.event-card-compact .event-card-content>:is(.event-card-top,h2,.event-location,.event-tags,.event-practical,.event-card-bottom){margin:0;min-height:0}
.event-card-compact .event-description{display:none}
.event-card-compact .event-practical{align-self:end;padding-top:6px}
.event-card-compact .event-card-bottom{align-self:end}
