
.secal-shell,.secal-shell *{box-sizing:border-box;text-transform:none!important}
.secal-shell{
  --navy:#001b3b;--navy2:#062c4e;--teal:#196869;--red:#ad282a;
  --gold:#d4b64f;--lime:#79d400;--ink:#17324a;--muted:#647581;
  --line:#dce5e9;--paper:#f4f7f8;--white:#fff;
  width:100vw;max-width:none!important;margin:-105px 0 45px calc(50% - 50vw)!important;
  position:relative;overflow:hidden;color:var(--ink);background:var(--paper);
  font-family:inherit;isolation:isolate
}
.secal-shell button,.secal-shell input,.secal-shell select{font-family:inherit}
.secal-progress{width:0;height:3px;position:fixed;z-index:9999;top:0;left:0;background:linear-gradient(90deg,var(--lime),var(--gold),var(--red));pointer-events:none}
.secal-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 88% 12%,rgba(25,104,105,.7),transparent 29%),linear-gradient(120deg,var(--navy),var(--navy2) 68%,#155b63)}
.secal-hero:before,.secal-hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%}
.secal-hero:before{width:310px;height:310px;right:2%;top:-190px;box-shadow:0 0 0 42px rgba(255,255,255,.025)}
.secal-hero:after{width:125px;height:125px;right:27%;bottom:-70px;border-color:rgba(212,182,79,.35)}
.secal-inner{width:min(1200px,calc(100% - 48px));margin:0 auto;position:relative;z-index:2}
.secal-hero-grid{min-height:355px;padding:58px 0 48px;display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:52px}
.secal-eyebrow{margin:0 0 14px!important;display:inline-flex;align-items:center;gap:10px;color:var(--lime)!important;font-size:11px!important;font-weight:700!important;letter-spacing:1.6px;text-transform:uppercase!important}
.secal-eyebrow:before{content:"";width:32px;height:2px;background:var(--lime)}
.secal-title{max-width:780px;margin:0 0 15px!important;color:#fff!important;font-family:inherit!important;font-size:clamp(39px,5.4vw,67px)!important;font-weight:300!important;line-height:1.05!important;letter-spacing:-.03em!important}
.secal-lead{max-width:760px;margin:0!important;color:rgba(255,255,255,.78)!important;font-size:clamp(15px,1.6vw,18px)!important;line-height:1.7!important}
.secal-hero-panel{padding:24px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:10px;box-shadow:inset 0 0 0 8px rgba(255,255,255,.025)}
.secal-year{margin:0 0 18px;color:var(--lime);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase!important}
.secal-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.secal-mini{padding:15px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.1);border-radius:6px}
.secal-mini strong{display:block;color:#fff!important;font-size:24px;line-height:1.1}
.secal-mini span{display:block;margin-top:5px;color:rgba(255,255,255,.65);font-size:10px;line-height:1.35;letter-spacing:.7px;text-transform:uppercase!important}
.secal-main{padding:38px 0 72px}
.secal-toolbar{position:relative;z-index:10;margin:-66px auto 34px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 44px rgba(0,27,59,.16)}
.secal-toolbar-row{display:grid;grid-template-columns:auto minmax(240px,1fr) 190px auto;align-items:center;gap:12px}
.secal-segment{display:inline-flex;padding:4px;background:#edf2f4;border-radius:7px}
.secal-filter,.secal-type,.secal-print{min-height:40px;margin:0!important;padding:8px 14px!important;color:var(--navy)!important;background:transparent!important;border:0!important;border-radius:5px!important;box-shadow:none!important;font-size:12px!important;font-weight:700!important;line-height:1.2!important;cursor:pointer;transition:.2s ease}
.secal-filter:hover,.secal-filter:focus-visible,.secal-filter.is-active{color:#fff!important;background:var(--navy)!important;outline:none}
.secal-search-wrap{position:relative}
.secal-search-icon{position:absolute;left:14px;top:50%;color:var(--teal);transform:translateY(-50%);pointer-events:none}
.secal-search{width:100%;min-height:48px;padding:10px 42px!important;color:var(--ink)!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:6px!important;box-shadow:none!important;font-size:14px!important;outline:none}
.secal-search:focus{border-color:var(--teal)!important;box-shadow:0 0 0 4px rgba(25,104,105,.11)!important}
.secal-clear{width:30px;height:30px;padding:0!important;display:none;place-items:center;position:absolute;right:8px;top:50%;color:var(--muted)!important;background:transparent!important;border:0!important;border-radius:50%;font-size:19px;transform:translateY(-50%);cursor:pointer}
.secal-clear:hover{color:var(--red)!important;background:#fbefef!important}
.secal-type-select{width:100%;min-height:48px;padding:9px 35px 9px 12px!important;color:var(--ink)!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:6px!important;font-size:13px!important;outline:none;cursor:pointer}
.secal-print{min-height:48px;color:#fff!important;background:var(--teal)!important;padding-inline:18px!important}
.secal-print:hover,.secal-print:focus-visible{background:var(--navy)!important;outline:none}
.secal-monthbar{margin:0 0 30px;display:flex;gap:7px;overflow-x:auto;padding:0 0 8px;scrollbar-width:thin;scrollbar-color:var(--teal) transparent}
.secal-month-btn{flex:0 0 auto;min-width:78px;margin:0!important;padding:10px 13px!important;color:var(--muted)!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:22px!important;box-shadow:none!important;font-size:11px!important;font-weight:700!important;line-height:1.2!important;cursor:pointer}
.secal-month-btn:hover,.secal-month-btn:focus-visible,.secal-month-btn.is-active{color:#fff!important;background:var(--teal)!important;border-color:var(--teal)!important;outline:none}
.secal-overview{margin-bottom:34px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:18px}
.secal-summary{padding:25px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 26px rgba(0,27,59,.06)}
.secal-summary-head{display:flex;align-items:start;justify-content:space-between;gap:18px}
.secal-section-title{margin:0 0 5px!important;color:var(--navy)!important;font-family:inherit!important;font-size:clamp(25px,3vw,36px)!important;font-weight:400!important;line-height:1.2!important}
.secal-section-copy,.secal-result{margin:0!important;color:var(--muted)!important;font-size:13px!important;line-height:1.6!important}
.secal-legend{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}
.secal-legend-item{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;color:var(--ink);background:#f7fafb;border:1px solid var(--line);border-radius:18px;font-size:10px;font-weight:700;letter-spacing:.3px}
.secal-dot{width:8px;height:8px;border-radius:50%;background:var(--tone)}
.secal-window{padding:25px;color:#fff;background:linear-gradient(135deg,var(--navy),var(--navy2));border-radius:9px;box-shadow:0 10px 30px rgba(0,27,59,.14)}
.secal-window-label{display:block;margin-bottom:11px;color:var(--lime);font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase!important}
.secal-window h3{margin:0 0 15px!important;color:#fff!important;font-family:inherit!important;font-size:21px!important;font-weight:400!important;line-height:1.3!important}
.secal-window p{margin:0 0 9px!important;color:rgba(255,255,255,.74)!important;font-size:13px!important;line-height:1.55!important}
.secal-window p:last-child{margin-bottom:0!important}
.secal-window strong{color:var(--gold)!important}
.secal-calendar{display:grid;gap:26px}
.secal-month{scroll-margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 32px rgba(0,27,59,.07);overflow:hidden}
.secal-month[hidden]{display:none!important}
.secal-month-head{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#fff;background:linear-gradient(110deg,var(--navy),var(--navy2))}
.secal-month-name{margin:0!important;color:#fff!important;font-family:inherit!important;font-size:clamp(22px,2.7vw,30px)!important;font-weight:400!important;line-height:1.2!important}
.secal-month-meta{color:var(--lime);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase!important}
.secal-event-list{margin:0!important;padding:10px 24px!important;list-style:none!important}
.secal-event{--tone:var(--teal);margin:0!important;padding:15px 0!important;display:grid;grid-template-columns:118px minmax(0,1fr) auto;align-items:center;gap:18px;border-bottom:1px solid var(--line);list-style:none!important}
.secal-event:last-child{border-bottom:0}
.secal-event:before,.secal-event::marker{display:none!important;content:""!important}
.secal-event[data-type="holiday"]{--tone:var(--red)}
.secal-event[data-type="exam"]{--tone:#b78a16}
.secal-event[data-type="meeting"]{--tone:var(--navy2)}
.secal-event[data-type="celebration"]{--tone:var(--teal)}
.secal-event[data-type="activity"]{--tone:#58a900}
.secal-event[data-type="trip"]{--tone:#9a476f}
.secal-event[data-type="milestone"]{--tone:#ad282a}
.secal-date{padding-left:13px;position:relative;color:var(--navy);font-size:13px;font-weight:700;line-height:1.35}
.secal-date:before{content:"";width:4px;height:100%;min-height:34px;position:absolute;left:0;top:50%;background:var(--tone);border-radius:4px;transform:translateY(-50%)}
.secal-day{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.55px;text-transform:uppercase!important}
.secal-event-title{margin:0!important;color:var(--ink)!important;font-size:14px!important;font-weight:500!important;line-height:1.45!important}
.secal-badges{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.secal-badge{display:inline-flex;align-items:center;min-height:25px;padding:5px 8px;border-radius:14px;font-size:9px;font-weight:700;line-height:1;letter-spacing:.55px;text-transform:uppercase!important;white-space:nowrap}
.secal-badge-campus{color:#fff;background:var(--campus-color,var(--navy))}
.secal-badge-type{color:var(--tone);background:#f5f7f7;border:1px solid var(--line)}
.secal-empty{padding:44px 24px;display:none;color:var(--muted);background:#fff;border:1px dashed #b9c8cf;border-radius:9px;text-align:center}
.secal-note{margin-top:30px;padding:18px 20px;color:#704f00;background:#fff9df;border:1px solid #ead99a;border-left:4px solid var(--gold);border-radius:6px;font-size:12px;line-height:1.65}
.secal-note strong{color:var(--navy)!important}
.secal-back{width:46px;height:46px;margin:0!important;padding:0!important;position:fixed;z-index:30;right:22px;bottom:22px;display:grid;place-items:center;color:#fff!important;background:var(--navy)!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:50%!important;box-shadow:0 10px 24px rgba(0,27,59,.23);font-size:20px;opacity:0;visibility:hidden;transform:translateY(8px);cursor:pointer;transition:.2s ease}
.secal-back.is-visible{opacity:1;visibility:visible;transform:none}
.secal-back:hover{background:var(--teal)!important}
@media(max-width:980px){.secal-hero-grid{grid-template-columns:1fr}.secal-hero-panel{max-width:520px}.secal-toolbar-row{grid-template-columns:1fr 1fr}.secal-segment{width:100%;grid-column:1/-1}.secal-filter{flex:1}.secal-overview{grid-template-columns:1fr}}
@media(max-width:700px){
  .secal-shell{margin-top:-35px!important;margin-bottom:28px!important}
  .secal-inner{width:calc(100% - 42px);margin-left:24px;margin-right:18px}
  .secal-hero-grid{min-height:auto;padding:40px 0 88px;gap:28px}.secal-title{font-size:clamp(36px,12vw,52px)!important}
  .secal-toolbar{margin-top:-60px;padding:13px}.secal-toolbar-row{grid-template-columns:1fr}.secal-segment{grid-column:auto}.secal-type-select,.secal-search,.secal-print{width:100%}
  .secal-summary,.secal-window{padding:21px}.secal-month-head{padding:18px}.secal-event-list{padding:5px 18px!important}
  .secal-event{grid-template-columns:95px minmax(0,1fr);gap:12px}.secal-badges{grid-column:2;justify-content:flex-start}.secal-event-title{font-size:13px!important}
  .secal-back{right:14px;bottom:14px}
}
@media(prefers-reduced-motion:reduce){.secal-shell *,.secal-shell *:before,.secal-shell *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media print{
  .secal-shell{width:100%!important;margin:0!important;background:#fff!important}.secal-progress,.secal-toolbar,.secal-monthbar,.secal-back{display:none!important}
  .secal-hero-grid{min-height:auto;padding:28px}.secal-hero-panel{display:none}.secal-main{padding:24px 0}.secal-overview{display:block}.secal-window{margin-top:15px}
  .secal-month{break-inside:avoid;box-shadow:none}.secal-event{break-inside:avoid}.secal-month[hidden],.secal-event[hidden]{display:none!important}
}


.secal-smartbar {
  margin: 0 0 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 18px;
}

.secal-smart-heading {
  margin: 0 0 10px !important;
  color: var(--navy) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.secal-upcoming {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.secal-up-card {
  --tone: var(--teal);
  min-width: 0;
  padding: 16px 16px 15px;
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-top: 4px solid var(--tone);
  border-radius: 9px;
  box-shadow: 0 9px 24px rgba(0,27,59,.07);
  transition: transform .22s ease, box-shadow .22s ease;
}

.secal-up-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 32px rgba(0,27,59,.13);
}

.secal-up-top {
  margin-bottom: 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.secal-up-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--navy);
  background: color-mix(in srgb, var(--tone) 12%, #fff);
  border-radius: 50%;
  font-size: 17px;
}

.secal-up-date {
  color: var(--tone);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .55px;
  text-transform: uppercase !important;
}

.secal-up-title {
  display: -webkit-box;
  overflow: hidden;
  color: var(--navy);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.secal-up-meta {
  margin-top: 8px;
  display: flex;
  gap: 6px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .45px;
  text-transform: uppercase !important;
}

.secal-view-tools {
  padding: 5px;
  display: flex;
  align-items: center;
  gap: 4px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 22px rgba(0,27,59,.06);
}

.secal-view-btn,
.secal-today {
  min-height: 39px;
  margin: 0 !important;
  padding: 8px 12px !important;
  color: var(--navy) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  cursor: pointer;
}

.secal-view-btn:hover,
.secal-view-btn:focus-visible,
.secal-view-btn.is-active {
  color: #fff !important;
  background: var(--navy) !important;
  outline: none;
}

.secal-today {
  color: #fff !important;
  background: var(--red) !important;
}

.secal-today:hover,
.secal-today:focus-visible {
  background: var(--teal) !important;
  outline: none;
}

.secal-event {
  position: relative;
  grid-template-columns: 118px 38px minmax(0, 1fr) auto;
  border-radius: 7px;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}

.secal-event:hover,
.secal-event:focus-visible {
  padding-inline: 11px !important;
  background: color-mix(in srgb, var(--tone) 6%, #fff);
  outline: none;
  transform: translateX(3px);
}

.secal-event-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: var(--tone);
  background: color-mix(in srgb, var(--tone) 10%, #fff);
  border: 1px solid color-mix(in srgb, var(--tone) 24%, #fff);
  border-radius: 50%;
  font-size: 17px;
}

.secal-event-action {
  margin-left: 2px;
  color: var(--tone);
  font-size: 16px;
  font-weight: 800;
}

.secal-shell.is-compact .secal-calendar {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.secal-shell.is-compact .secal-month-head {
  padding: 17px 19px;
}

.secal-shell.is-compact .secal-event-list {
  padding: 7px 17px !important;
}

.secal-shell.is-compact .secal-event {
  grid-template-columns: 90px 34px minmax(0, 1fr);
  gap: 10px;
  padding: 12px 0 !important;
}

.secal-shell.is-compact .secal-badges {
  grid-column: 3;
  justify-content: flex-start;
}

.secal-dialog-backdrop {
  position: fixed;
  z-index: 100000;
  inset: 0;
  padding: 20px;
  display: none;
  place-items: center;
  background: rgba(0,20,45,.72);
  backdrop-filter: blur(5px);
}

.secal-dialog-backdrop.is-open {
  display: grid;
}

.secal-dialog {
  width: min(100%, 540px);
  max-height: min(720px, calc(100vh - 40px));
  overflow: auto;
  position: relative;
  background: #fff;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 12px;
  box-shadow: 0 30px 80px rgba(0,0,0,.32);
}

.secal-dialog-band {
  height: 8px;
  background: linear-gradient(90deg, var(--teal), var(--gold), var(--red));
}

.secal-dialog-body {
  padding: clamp(24px, 5vw, 38px);
}

.secal-dialog-close {
  width: 36px;
  height: 36px;
  margin: 0 !important;
  padding: 0 !important;
  position: absolute;
  right: 14px;
  top: 20px;
  display: grid;
  place-items: center;
  color: var(--navy) !important;
  background: #edf2f4 !important;
  border: 0 !important;
  border-radius: 50% !important;
  font-size: 21px !important;
  cursor: pointer;
}

.secal-dialog-symbol {
  width: 58px;
  height: 58px;
  margin-bottom: 18px;
  display: grid;
  place-items: center;
  color: var(--navy);
  background: #eef6f4;
  border-radius: 50%;
  font-size: 27px;
}

.secal-dialog-label {
  display: block;
  margin-bottom: 7px;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase !important;
}

.secal-dialog-title {
  margin: 0 42px 15px 0 !important;
  color: var(--navy) !important;
  font-size: clamp(25px, 4vw, 34px) !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
}

.secal-dialog-meta {
  margin: 0 0 22px !important;
  color: var(--muted) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}

.secal-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.secal-dialog-download,
.secal-dialog-dismiss {
  min-height: 44px;
  margin: 0 !important;
  padding: 10px 17px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  cursor: pointer;
}

.secal-dialog-download {
  color: #fff !important;
  background: var(--teal) !important;
  border: 0 !important;
}

.secal-dialog-dismiss {
  color: var(--navy) !important;
  background: #fff !important;
  border: 1px solid var(--line) !important;
}

@media (max-width: 980px) {
  .secal-smartbar {
    grid-template-columns: 1fr;
  }

  .secal-view-tools {
    width: max-content;
  }
}

@media (max-width: 760px) {
  .secal-upcoming {
    grid-template-columns: 1fr;
  }

  .secal-shell.is-compact .secal-calendar {
    grid-template-columns: 1fr;
  }

  .secal-event,
  .secal-shell.is-compact .secal-event {
    grid-template-columns: 86px 34px minmax(0, 1fr);
  }

  .secal-badges,
  .secal-shell.is-compact .secal-badges {
    grid-column: 3;
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .secal-view-tools {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
  }

  .secal-event,
  .secal-shell.is-compact .secal-event {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  .secal-event-icon {
    display: none;
  }

  .secal-badges,
  .secal-shell.is-compact .secal-badges {
    grid-column: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .secal-up-card,
  .secal-event {
    transition: none;
  }
}
