.ss-days{display:flex;flex-direction:column;gap:34px}.ss-day{overflow:visible}.ss-day>header{display:flex;align-items:flex-end;justify-content:space-between;padding:25px 32px}.ss-day>header h3{font-size:2.5rem}.ss-day-timeline{padding:8px 24px 22px}.ss-time-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:20px;padding:18px 0;position:relative}.ss-time-row:not(:last-child){border-bottom:1px dashed #c9c4b9}.ss-time-row>time{position:relative;color:var(--blue);padding-top:5px}.ss-time-row>time:after{content:"";position:absolute;width:13px;height:13px;border:4px solid var(--blue);background:var(--paper);border-radius:50%;right:-27px;top:7px;z-index:2}.ss-time-row>time strong,.ss-time-row>time small{display:block}.ss-time-row>time strong{font-size:1.1rem}.ss-time-row>time small{font-size:.74rem;color:#6c7485}.ss-parallel{display:grid;grid-template-columns:repeat(var(--parallel-count),minmax(0,1fr));gap:12px;border-left:3px solid var(--blue);padding-left:20px;min-width:0}.ss-parallel .ss-slot{display:block;border:0;padding:0;min-width:0}.ss-parallel .ss-slot-body{height:100%;background:#fff;border-radius:16px;border-left:7px solid var(--yellow);padding:16px;box-shadow:0 5px 15px rgba(23,32,57,.06)}.ss-parallel .ss-slot-campus .ss-slot-body{border-color:var(--coral)}.ss-parallel .ss-slot h4{font-size:1rem;margin:8px 0}.ss-parallel .ss-slot p{margin:4px 0}.ss-parallel .ss-slot footer{margin-top:12px}.ss-split-links{display:flex;gap:9px;margin-top:auto}.ss-split-links a{color:var(--blue);background:#fff;padding:9px 12px;border-radius:50px;text-decoration:none;font-size:.78rem;font-weight:900}
.ss-subpage{min-height:100vh;background:var(--paper)}.ss-subhero{padding:70px max(24px,calc((100vw - 1100px)/2));background:var(--teal);position:relative;overflow:hidden}.ss-subhero:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:var(--yellow);right:5%;top:-120px}.ss-subhero h1{font-size:clamp(3rem,7vw,6.5rem);line-height:.9;letter-spacing:-.06em;color:var(--blue);max-width:800px;margin:18px 0}.ss-subhero p{font-size:1.1rem;max-width:650px;line-height:1.6;position:relative;z-index:1}.ss-form-shell{max-width:1100px;margin:60px auto;padding:0 24px;display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.ss-form-card,.ss-list-card{background:#fff;border-radius:var(--r);padding:32px;box-shadow:0 10px 32px rgba(23,32,57,.08)}.ss-form-card h2,.ss-list-card h2{font-size:2rem;color:var(--blue)}.ss-field{display:flex;flex-direction:column;gap:7px;margin:18px 0}.ss-field label{font-weight:900;color:var(--blue)}.ss-field select,.ss-field textarea{width:100%;border:2px solid #dedbd2;border-radius:14px;padding:13px;background:#fff;font:inherit}.ss-field textarea{min-height:110px;resize:vertical}.ss-entry{padding:16px 0;border-bottom:1px dashed var(--line)}.ss-entry:last-child{border:0}.ss-entry small{color:#6f7789}.ss-entry p{margin:7px 0;line-height:1.5}.ss-empty-state{padding:28px;background:#f4f1e9;border-radius:16px;color:#6b7280}.ss-back{display:inline-flex;margin-bottom:20px;color:var(--blue);font-weight:900;text-decoration:none}.ss-toast{position:fixed;right:20px;bottom:20px;background:var(--blue);color:#fff;padding:14px 18px;border-radius:12px;z-index:20}

/* Time-based programme grid. Events share row lines, so identical start and
   end times always produce flush top and bottom edges. */
.ss-day-grid{display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-rows:repeat(var(--grid-rows),minmax(12px,auto));column-gap:16px;padding:18px 24px 24px;position:relative}.ss-grid-time{grid-column:1;align-self:start;position:relative;color:var(--blue);font-size:.78rem;font-weight:900;line-height:1;transform:translateY(-.38em);z-index:2}.ss-grid-time:after{content:"";position:absolute;width:8px;height:8px;right:-20px;top:.05em;border:2px solid var(--blue);border-radius:50%;background:var(--paper)}.ss-grid-event{grid-column:2;align-self:stretch;display:block;min-width:0;width:calc((100% - (var(--event-lanes) - 1)*10px)/var(--event-lanes));margin-left:calc(var(--event-lane)*(100% + 10px)/var(--event-lanes));padding:4px 0;border:0;z-index:1}.ss-grid-event .ss-slot-body{height:100%;min-height:0;background:#fff;border-radius:12px;border-left:6px solid var(--yellow);padding:9px 11px;box-shadow:0 3px 10px rgba(23,32,57,.07);overflow:hidden}.ss-grid-event.ss-slot-campus .ss-slot-body{border-color:var(--coral)}.ss-grid-event.ss-slot-verpflegung .ss-slot-body{border-color:#82afea}.ss-grid-event .ss-slot-meta{font-size:.6rem}.ss-grid-event h4{font-size:.94rem;margin:4px 0;overflow-wrap:anywhere}.ss-grid-event p{font-size:.75rem;line-height:1.25;margin:3px 0}.ss-grid-event footer{margin-top:6px;font-size:.66rem;flex-wrap:wrap}.ss-grid-event .ss-book{padding:5px 8px;font-size:.64rem}

@media(max-width:620px){.ss-day-grid{grid-template-columns:48px minmax(0,1fr);column-gap:10px;padding:16px 12px 20px}.ss-grid-time{font-size:.68rem}.ss-grid-time:after{right:-13px}.ss-grid-event{width:calc((100% - (var(--event-lanes) - 1)*6px)/var(--event-lanes));margin-left:calc(var(--event-lane)*(100% + 6px)/var(--event-lanes));padding:3px 0}.ss-grid-event .ss-slot-body{border-left-width:4px;padding:7px}.ss-grid-event h4{font-size:.82rem}.ss-grid-event footer{gap:4px}}
@media(max-width:900px){.ss-parallel{grid-template-columns:repeat(var(--parallel-count),minmax(0,1fr))}.ss-form-shell{grid-template-columns:1fr}}
@media(max-width:620px){body{overflow-x:hidden}.ss-nav{padding-inline:18px}.ss-hero{padding-inline:22px;grid-template-columns:minmax(0,1fr)}.ss-hero>*{min-width:0}.ss-hero h1{font-size:2.75rem;overflow-wrap:anywhere}.ss-hero-copy>p{font-size:1rem}.ss-hero-art{width:100%;max-width:100%;transform:scale(.72);transform-origin:left top}.ss-section,.ss-schedule-section{padding-left:18px;padding-right:18px}.ss-day-timeline{padding:4px 14px 16px}.ss-time-row{grid-template-columns:58px minmax(0,1fr);gap:10px}.ss-time-row>time:after{right:-17px}.ss-parallel{grid-template-columns:1fr;padding-left:12px}.ss-day>header{padding:20px}.ss-day>header h3{font-size:2rem}.ss-location{padding-inline:22px}.ss-form-card,.ss-list-card{padding:22px}.ss-subhero{padding:55px 22px}.ss-function-grid{gap:13px}.ss-function{min-height:250px}.ss-function>span{margin:20px 0 10px}}
