/* =========================================================
   IR COMMAND CENTER
   EVENT CALENDAR
   REFINED CLIENT UI
========================================================= */

.calendar-module{
    --ec-purple:#6c4cf5;
    --ec-purple-dark:#5638e7;
    --ec-purple-soft:#f3f0ff;

    --ec-text:#242738;
    --ec-muted:#7d8296;
    --ec-line:#e5e7ef;
    --ec-soft:#fafafe;

    --ec-result:#6c4cf5;
    --ec-call:#159c8a;
    --ec-event:#e29a35;

    width:100%;
    min-width:0;

    color:var(--ec-text);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;

    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;

    text-rendering:optimizeLegibility;
}


.calendar-module *,
.calendar-module *::before,
.calendar-module *::after{
    box-sizing:border-box;
}


.calendar-module .hidden{
    display:none !important;
}



/* =========================================================
   PAGE HEADER
========================================================= */

.ec-page-head{
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        auto;

    align-items:end;

    gap:24px;

    margin:0 0 12px;

    padding:2px 3px 0;
}


.ec-page-copy{
    min-width:0;
}


.ec-eyebrow{
    display:flex;
    align-items:center;

    gap:7px;

    margin-bottom:6px;

    color:#8877d9;

    font-size:10px;
    line-height:1;

    font-weight:800;

    letter-spacing:1.5px;
}


.ec-eyebrow span{
    width:5px;
    height:5px;

    flex:0 0 5px;

    border-radius:50%;

    background:var(--ec-purple);
}


.ec-page-head h1{
    margin:0;

    color:#202233;

    font-size:30px;
    line-height:1;

    font-weight:800;

    letter-spacing:-1px;
}


.ec-page-head h1 strong{
    color:var(--ec-purple);
}


.ec-page-head p{
    max-width:720px;

    margin:7px 0 0;

    color:var(--ec-muted);

    font-size:12px;
    line-height:1.45;

    font-weight:500;
}



/* =========================================================
   HEADER TOOLS
========================================================= */

.ec-head-tools{
    display:flex;
    align-items:center;
    justify-content:flex-end;

    gap:8px;

    min-width:0;
}


.ec-search{
    position:relative;

    width:min(390px,31vw);
}


.ec-search svg{
    position:absolute;

    left:13px;
    top:50%;

    width:16px;
    height:16px;

    transform:translateY(-50%);

    color:#9399ad;

    pointer-events:none;
}


.ec-search input{
    width:100%;
    height:40px;

    padding:0 14px 0 39px;

    border:1px solid #dfe2eb;
    border-radius:12px;

    outline:none;

    background:#fff;

    color:#2c3042;

    font-size:12px;

    font-weight:600;

    box-shadow:
        0 2px 8px rgba(42,35,80,.025);
}


.ec-search input::placeholder{
    color:#9ca2b4;
}


.ec-search input:focus{
    border-color:#cfc5ff;

    box-shadow:
        0 0 0 3px rgba(108,76,245,.07);
}


.ec-count-pill{
    min-width:34px;
    height:34px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:0 12px;

    border:1px solid #dfe2eb;
    border-radius:999px;

    background:#fff;

    color:#6f7488;

    font-size:10.5px;

    font-weight:750;

    white-space:nowrap;
}


.ec-icon-btn{
    width:40px;
    height:40px;

    display:grid;
    place-items:center;

    padding:0;

    border:1px solid #dfe2eb;
    border-radius:12px;

    background:#fff;

    color:#6d7286;

    cursor:pointer;
}


.ec-icon-btn:hover{
    color:var(--ec-purple);

    border-color:#d2caff;

    background:#faf9ff;
}


.ec-icon-btn svg{
    width:17px;
    height:17px;
}



/* =========================================================
   FILTERS
========================================================= */

.ec-control-row{
    display:flex;
    align-items:center;
    justify-content:flex-end;

    margin-bottom:14px;

    overflow-x:auto;

    scrollbar-width:none;
}


.ec-control-row::-webkit-scrollbar{
    display:none;
}


/* Hide Results / Concalls / Events type filter */

.ec-control-row .ec-filter-strip:first-child{
    display:none !important;
}


.ec-filter-strip{
    display:inline-flex;
    align-items:center;

    gap:4px;

    padding:4px;

    border:1px solid #e0e2eb;
    border-radius:12px;

    background:#fff;

    white-space:nowrap;
}


.ec-filter-btn{
    height:32px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:0 13px;

    border:0;
    border-radius:9px;

    background:transparent;

    color:#70758a;

    font-size:10.5px;

    font-weight:750;

    cursor:pointer;
}


.ec-filter-btn:hover{
    color:#5e47d4;

    background:#faf9ff;
}


.ec-filter-btn.active{
    color:#5d43dc;

    background:#f1edff;

    box-shadow:
        inset 0 0 0 1px #ddd6ff;
}


.ec-filter-dot{
    width:6px;
    height:6px;

    margin-right:5px;

    border-radius:50%;
}


.ec-filter-dot.result{
    background:var(--ec-result);
}


.ec-filter-dot.call{
    background:var(--ec-call);
}


.ec-filter-dot.event{
    background:var(--ec-event);
}


.ec-scope-strip{
    margin-left:auto;
}



/* =========================================================
   OLD KPI CARDS
========================================================= */

.ec-stats{
    display:none !important;
}



/* =========================================================
   MAIN 5 PANEL LAYOUT
========================================================= */



/* =========================================================
   PANEL
========================================================= */

.ec-panel{
    min-width:0;
    min-height:0;

    display:flex;
    flex-direction:column;

    overflow:hidden;

    border:1px solid #e4e6ee;

    border-radius:18px;

    background:#fff;

    box-shadow:
        0 7px 22px rgba(39,33,78,.045);
}


.ec-panel-extra{
    grid-area:extra;
}


.ec-panel-results{
    grid-area:results;
}


.ec-panel-concall{
    grid-area:concall;
}


.ec-panel-events{
    grid-area:events;
}



/* =========================================================
   PANEL HEADER
========================================================= */

.ec-panel-head{
    min-height:62px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:12px;

    padding:13px 15px;

    border-bottom:1px solid #eceef3;

    background:
        linear-gradient(
            180deg,
            #fff,
            #fefeff
        );
}


.ec-panel-title{
    min-width:0;

    display:flex;
    align-items:center;

    gap:10px;
}


.ec-panel-icon{
    width:36px;
    height:36px;

    flex:0 0 36px;

    display:grid;
    place-items:center;

    border-radius:11px;

    background:#f2efff;

    color:var(--ec-purple);
}


.ec-panel-icon svg{
    width:17px;
    height:17px;

    stroke-width:2;
}


.ec-panel-icon.soft{
    background:#f5f2ff;

    color:#7c66eb;
}


.ec-panel-icon.result{
    background:#f1edff;

    color:var(--ec-result);
}


.ec-panel-icon.call{
    background:#eaf8f5;

    color:var(--ec-call);
}


.ec-panel-icon.event{
    background:#fff4e4;

    color:var(--ec-event);
}


.ec-panel-title h3{
    margin:0;

    color:#282b3d;

    font-size:17px;
    line-height:1.15;

    font-weight:800;

    letter-spacing:-.25px;
}


.ec-panel-title small{
    display:none !important;
}



/* =========================================================
   CALENDAR TOOLBAR
========================================================= */

.ec-calendar-toolbar{
    display:grid;

    grid-template-columns:
        38px
        minmax(0,1fr)
        38px;

    align-items:center;

    gap:10px;

    padding:12px 13px 9px;
}


.ec-nav-btn{
    width:38px;
    height:38px;

    display:grid;
    place-items:center;

    padding:0;

    border:1px solid #dfe2eb;
    border-radius:11px;

    background:#fff;

    color:#6d7286;

    cursor:pointer;
}


.ec-nav-btn:hover{
    color:var(--ec-purple);

    border-color:#d2caff;

    background:#faf9ff;
}


.ec-nav-btn svg{
    width:18px;
    height:18px;
}


.ec-month-label{
    min-width:0;

    padding:0;

    border:0;

    background:transparent;

    color:#2c3042;

    font-size:17px;

    font-weight:800;

    text-align:center;

    cursor:pointer;
}


.ec-month-label:hover{
    color:var(--ec-purple);
}



/* =========================================================
   WEEKDAY LABELS
========================================================= */

.ec-weekdays{
    display:grid;

    grid-template-columns:
        repeat(7,minmax(0,1fr));

    gap:4px;

    padding:7px 10px 8px;

    border-bottom:1px solid #f0f1f5;

    background:#fbfbfe;
}


.ec-weekdays span{
    text-align:center;

    color:#858a9f;

    font-size:10.5px;

    font-weight:800;

    text-transform:uppercase;

    letter-spacing:.4px;
}



/* =========================================================
   CALENDAR GRID
========================================================= */

.ec-calendar-grid{
    flex:1;

    min-height:0;

    display:grid;

    grid-template-columns:
        repeat(7,minmax(0,1fr));

    grid-template-rows:
        repeat(6,1fr);

    gap:5px;

    padding:9px 10px 12px;
}


.ec-day{
    position:relative;

    min-width:0;
    min-height:0;

    display:flex;
    align-items:flex-start;
    justify-content:center;

    padding:8px 5px;

    border:1px solid transparent;

    border-radius:11px;

    background:#fff;

    color:#50556a;

    cursor:pointer;
}


.ec-day:hover{
    border-color:#e4deff;

    background:#faf9ff;
}


.ec-day.outside{
    visibility:hidden;

    pointer-events:none;
}


.ec-day.today:not(.selected){
    border-color:#cbc2ff;

    background:#faf9ff;
}


.ec-day.selected{
    border-color:transparent;

    background:
        linear-gradient(
            145deg,
            #6547ed,
            #836af8
        );

    color:#fff;

    box-shadow:
        0 8px 18px rgba(108,76,245,.20);
}


.ec-day-number{
    display:flex;
    align-items:center;
    justify-content:center;

    color:inherit;

    font-size:13px;

    font-weight:800;

    font-variant-numeric:tabular-nums;
}



/* =========================================================
   CALENDAR EVENT COUNT â€” HIDDEN
========================================================= */

/*
   Do not show the number of events inside a calendar date.
   The category dots are enough and keep the calendar clean.
*/
.ec-day-count,
.ec-panel-calendar .ec-day-count,
.ec-panel-calendar .ec-day.selected .ec-day-count,
.ec-panel-calendar .ec-day.today .ec-day-count{
    display:none !important;
}


/* =========================================================
   CALENDAR DOTS
========================================================= */

.ec-calendar-dots{
    position:absolute;

    left:50%;
    bottom:8px;

    display:flex;

    gap:4px;

    transform:translateX(-50%);
}


.ec-calendar-dot{
    width:5px;
    height:5px;

    border-radius:50%;
}


.ec-calendar-dot.result{
    background:var(--ec-result);
}


.ec-calendar-dot.call{
    background:var(--ec-call);
}


.ec-calendar-dot.event{
    background:var(--ec-event);
}



/* =========================================================
   SELECTED DAY
========================================================= */

.ec-day-summary{
    flex:1;

    min-height:0;

    display:flex;
    align-items:center;

    gap:16px;

    padding:14px 15px;
}


.ec-day-summary > div:first-child{
    flex:0 0 auto;

    min-width:155px;
}


.ec-day-date{
    color:#2a2d40;

    font-size:16px;

    font-weight:800;

    white-space:nowrap;
}


.ec-day-subtext{
    display:none !important;
}


.ec-day-stats{
    flex:1;

    display:grid;

    grid-template-columns:
        repeat(4,minmax(0,1fr));

    gap:8px;

    margin:0;
}


.ec-day-stat{
    min-width:0;

    padding:10px;

    border:1px solid #e9e7f2;

    border-radius:12px;

    background:#faf9fe;
}


.ec-day-stat span{
    display:block;

    margin-bottom:5px;

    color:#85899c;

    font-size:8.5px;

    font-weight:800;

    text-transform:uppercase;

    letter-spacing:.35px;
}


.ec-day-stat strong{
    display:block;

    color:#272a3d;

    font-size:22px;

    font-weight:800;

    line-height:1;

    font-variant-numeric:tabular-nums;
}


.ec-day-stat.result strong{
    color:var(--ec-result);
}


.ec-day-stat.call strong{
    color:var(--ec-call);
}


.ec-day-stat.event strong{
    color:var(--ec-event);
}



/* =========================================================
   TALL PANELS
========================================================= */

.ec-tall-panel{
    height:100%;

    min-height:0;
}


.ec-scroll-list{
    flex:1;
    min-height:0;

    display:flex;
    flex-direction:column;

    gap:9px;

    padding:10px;

    overflow-y:auto;
    overflow-x:hidden;

    scrollbar-width:thin;

    scrollbar-color:
        transparent
        transparent;
}


.ec-tall-panel:hover
.ec-scroll-list{
    scrollbar-color:
        rgba(98,78,176,.20)
        transparent;
}


.ec-scroll-list::-webkit-scrollbar{
    width:4px;
}


.ec-scroll-list::-webkit-scrollbar-track{
    background:transparent;
}


.ec-scroll-list::-webkit-scrollbar-thumb{
    background:transparent;

    border-radius:999px;
}


.ec-tall-panel:hover
.ec-scroll-list::-webkit-scrollbar-thumb{
    background:
        rgba(98,78,176,.20);
}



/* =========================================================
   EVENT CARDS
========================================================= */

.ec-event-card{
    position:relative;

    width:100%;

    flex:0 0 auto;

    display:block;

    padding:
        13px 13px 12px 16px;

    border:
        1px solid #e9eaf0;

    border-radius:14px;

    background:#fcfcfe;

    color:inherit;

    text-align:left;

    cursor:pointer;

    transition:
        border-color .14s ease,
        background .14s ease,
        transform .14s ease,
        box-shadow .14s ease;
}


.ec-event-card::before{
    content:"";

    position:absolute;

    left:0;
    top:9px;
    bottom:9px;

    width:3px;

    border-radius:
        0 4px 4px 0;

    background:var(--ec-result);
}


.ec-event-card.call::before{
    background:var(--ec-call);
}


.ec-event-card.event::before{
    background:var(--ec-event);
}


.ec-event-card:hover{
    transform:translateY(-1px);

    border-color:#dad5f6;

    background:#fff;

    box-shadow:
        0 6px 15px rgba(44,37,86,.05);
}


.ec-event-card-top{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:8px;

    margin-bottom:7px;
}


.ec-event-time{
    min-width:0;

    

    color:#858a9d;

    font-size:9.5px;

    font-weight:700;

    
    
}


.ec-event-card h4{
    margin:0;

    overflow:hidden;

    color:#292c3e;

    font-size:13px;
    line-height:1.35;

    font-weight:800;

    white-space:nowrap;
    text-overflow:ellipsis;
}


.ec-event-card-meta{
    display:flex;
    align-items:center;

    gap:7px;

    margin-top:7px;

    color:#9095a8;

    font-size:9px;

    font-weight:650;
}



/* =========================================================
   EVENT SCOPE
========================================================= */

.ec-scope-pill{
    display:inline-flex;
    align-items:center;

    gap:5px;
}


.ec-scope-pill::before{
    content:"";

    width:5px;
    height:5px;

    flex:0 0 5px;

    border-radius:50%;

    background:#aaa;
}


.ec-scope-pill.client::before{
    background:var(--ec-purple);
}


.ec-scope-pill.peer::before{
    background:#8a72ff;
}


.ec-scope-pill.market::before{
    background:var(--ec-event);
}


.ec-event-city{
    min-width:0;

    overflow:hidden;

    white-space:nowrap;
    text-overflow:ellipsis;
}


.ec-has-docs{
    display:inline-flex;

    margin-left:auto;

    color:#846fea;
}


.ec-has-docs svg{
    width:13px;
    height:13px;
}



/* =========================================================
   STATUS
========================================================= */

.ec-status-pill{
    min-height:22px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:0 8px;

    border-radius:999px;

    background:#f2f3f7;

    color:#74798c;

    font-size:8px;

    font-weight:800;

    white-space:nowrap;
}


.ec-status-pill.ready{
    color:#148267;

    background:#eaf8f3;
}


.ec-status-pill.alert{
    color:#ca5265;

    background:#fff0f2;
}


.ec-status-pill.today{
    color:#6247dc;

    background:#f1edff;
}



/* =========================================================
   EMPTY STATE
========================================================= */

.ec-column-empty{
    flex:1;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    padding:24px;

    text-align:center;

    color:#9297aa;
}


.ec-column-empty-icon{
    width:46px;
    height:46px;

    display:grid;
    place-items:center;

    margin-bottom:10px;

    border-radius:13px;

    background:#f2efff;

    color:var(--ec-purple);
}


.ec-column-empty-icon.call{
    background:#eaf8f5;

    color:var(--ec-call);
}


.ec-column-empty-icon.event{
    background:#fff4e4;

    color:var(--ec-event);
}


.ec-column-empty-icon svg{
    width:20px;
    height:20px;
}


.ec-column-empty strong{
    color:#3f4356;

    font-size:12px;

    font-weight:800;
}


.ec-column-empty > span:last-child{
    max-width:220px;

    margin-top:6px;

    font-size:9.5px;
    line-height:1.45;
}



/* =========================================================
   MODAL
========================================================= */

.ec-modal-backdrop{
    position:fixed;

    inset:0;

    z-index:1600;

    display:none;
    align-items:center;
    justify-content:center;

    padding:24px;

    background:
        rgba(33,30,52,.32);

    backdrop-filter:blur(6px);
}


.ec-modal-backdrop.show{
    display:flex;
}


.ec-modal{
    width:min(720px,96vw);

    max-height:90vh;

    overflow:hidden;

    border:1px solid #e3e3ec;

    border-radius:18px;

    background:#fff;

    box-shadow:
        0 28px 80px
        rgba(31,26,64,.20);
}


.ec-modal-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;

    gap:15px;

    padding:17px 18px;

    border-bottom:
        1px solid #ececf2;
}


.ec-modal-title-wrap h2{
    margin:7px 0 0;

    color:#252839;

    font-size:20px;

    font-weight:800;
}


.ec-modal-title-wrap p{
    margin:6px 0 0;

    color:#8e92a4;

    font-size:10px;
}


.ec-modal-body{
    max-height:
        calc(90vh - 92px);

    overflow:auto;

    padding:
        16px 18px 20px;
}


.ec-modal-status{
    margin-bottom:12px;
}


.ec-modal-close{
    width:34px;
    height:34px;

    display:grid;
    place-items:center;

    border:
        1px solid #e2e3eb;

    border-radius:10px;

    background:#fff;

    color:#727789;

    cursor:pointer;
}


.ec-modal-close svg{
    width:16px;
    height:16px;
}



/* =========================================================
   MODAL INFO
========================================================= */

.ec-modal-info{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:9px;

    margin-bottom:14px;
}


.ec-info-item{
    min-width:0;

    padding:11px;

    border:
        1px solid #ececf2;

    border-radius:11px;

    background:#fafafe;
}


.ec-info-item.full{
    grid-column:1/-1;
}


.ec-info-label{
    display:block;

    margin-bottom:4px;

    color:#999cad;

    font-size:8px;

    font-weight:800;

    text-transform:uppercase;
}


.ec-info-value{
    color:#45495b;

    font-size:11px;
    line-height:1.4;

    font-weight:650;
}



/* =========================================================
   MODAL DOCUMENTS
========================================================= */

.ec-modal-docs{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:9px;
}


.ec-doc-card{
    display:flex;
    align-items:center;

    gap:10px;

    padding:11px;

    border:
        1px solid #e8e8f0;

    border-radius:12px;

    background:#fff;

    text-decoration:none;
}


.ec-doc-card:hover{
    border-color:#d9d2ff;

    background:#faf9ff;
}


.ec-doc-icon{
    width:34px;
    height:34px;

    flex:0 0 34px;

    display:grid;
    place-items:center;

    border-radius:10px;

    background:#f1edff;

    color:#674bdc;
}


.ec-doc-icon svg{
    width:16px;
    height:16px;
}


.ec-doc-copy strong{
    display:block;

    color:#36394a;

    font-size:10.5px;

    font-weight:800;
}


.ec-doc-copy span{
    display:block;

    margin-top:2px;

    color:#999cad;

    font-size:8px;
}



/* =========================================================
   TYPE BADGE
========================================================= */

.ec-type-badge{
    display:inline-flex;

    width:fit-content;

    padding:4px 7px;

    border-radius:999px;

    background:#f1edff;

    color:#6348df;

    font-size:7.5px;

    font-weight:800;
}


.ec-type-badge.call{
    background:#eaf8f5;

    color:#138373;
}


.ec-type-badge.event{
    background:#fff4e4;

    color:#b87419;
}



/* =========================================================
   LOAD NOTICE / SPINNER
========================================================= */

.ec-load-notice{
    position:fixed;

    right:28px;
    bottom:28px;

    z-index:1450;

    display:flex;
    align-items:center;

    gap:8px;

    padding:10px 13px;

    border:
        1px solid #ddd8fa;

    border-radius:11px;

    background:#fff;

    color:#62598d;

    font-size:10px;

    opacity:0;

    visibility:hidden;
}


.ec-load-notice.show{
    opacity:1;

    visibility:visible;
}


.ec-spinner{
    width:14px;
    height:14px;

    border:
        2px solid #e8e3ff;

    border-top-color:
        var(--ec-purple);

    border-radius:50%;

    animation:
        ecSpin .7s linear infinite;
}


@keyframes ecSpin{

    to{
        transform:rotate(360deg);
    }

}


.ec-spin-icon{
    animation:
        ecSpin .7s linear infinite;
}



/* =========================================================
   SKELETON
========================================================= */

@keyframes ecSkeleton{

    from{
        transform:translateX(-120%);
    }

    to{
        transform:translateX(120%);
    }

}


.ec-event-card.skeleton,
.ec-day.skeleton-day{
    position:relative;

    overflow:hidden;

    pointer-events:none;

    background:#fafafe;
}


.ec-event-card.skeleton::before,
.ec-day.skeleton-day::before{
    content:"";

    position:absolute;

    inset:0;

    transform:
        translateX(-120%);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(108,76,245,.065),
            transparent
        );

    animation:
        ecSkeleton 1.25s infinite;
}


.ec-skeleton-line{
    display:block;

    width:100%;
    height:9px;

    margin-top:8px;

    border-radius:999px;

    background:#efeff5;
}


.ec-skeleton-line.short{
    width:36%;

    margin-top:0;
}


.ec-skeleton-line.medium{
    width:64%;
}



/* =========================================================
   RESPONSIVE
========================================================= */


@media(max-width:1250px){


    .ec-panel-calendar{
        min-height:430px;
    }


    .ec-panel-extra{
        min-height:180px;
    }


    .ec-day-stats{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}


@media(max-width:950px){

}


/* =========================================================
   FINAL CALENDAR LAYOUT
   Square calendar + slim readable promo card
========================================================= */

.ec-selected-day-data{
    display:none !important;
}


/* =========================================================
   MAIN 5-PANEL LAYOUT
========================================================= */

.ec-layout{
    display:grid;

    grid-template-columns:
        minmax(370px,1.14fr)
        minmax(290px,1fr)
        minmax(290px,1fr)
        minmax(290px,1fr);

    grid-template-rows:
        auto
        152px;

    grid-template-areas:
        "calendar results concall events"
        "extra    results concall events";

    gap:14px;

    width:100%;

    align-items:start;
}


/* =========================================================
   SQUARE CALENDAR PANEL
========================================================= */

.ec-panel-calendar{
    grid-area:calendar;

    width:100%;
    height:auto;

    aspect-ratio:1 / 1;

    align-self:start;

    overflow:hidden;

    border:1px solid #e4e6ee;
    border-radius:18px;

    background:#fff;

    box-shadow:
        0 7px 22px rgba(39,33,78,.045);
}

/* Calendar has no redundant title/header */
.ec-panel-calendar .ec-panel-head{
    display:none !important;
}


/* =========================================================
   CALENDAR MONTH BAR
========================================================= */

.ec-panel-calendar .ec-calendar-toolbar{
    display:grid;

    grid-template-columns:
        44px
        minmax(0,1fr)
        44px;

    align-items:center;

    gap:12px;

    padding:17px 17px 15px;

    border-bottom:1px solid #eceef3;

    background:#fff;
}

.ec-panel-calendar .ec-nav-btn{
    width:42px;
    height:42px;

    display:grid;
    place-items:center;

    padding:0;

    border:1px solid #dfe2eb;
    border-radius:13px;

    background:#fff;

    color:#6d7286;

    cursor:pointer;

    transition:
        color .15s ease,
        border-color .15s ease,
        background .15s ease,
        transform .15s ease;
}

.ec-panel-calendar .ec-nav-btn:hover{
    color:var(--ec-purple);

    border-color:#d2caff;

    background:#faf9ff;

    transform:translateY(-1px);
}

.ec-panel-calendar .ec-nav-btn svg{
    width:19px;
    height:19px;
}

.ec-panel-calendar .ec-month-label{
    min-width:0;

    padding:0;

    border:0;

    background:transparent;

    color:#2a2d40;

    font-size:19px;
    line-height:1;

    font-weight:800;

    text-align:center;

    cursor:pointer;
}

.ec-panel-calendar .ec-month-label:hover{
    color:var(--ec-purple);
}


/* =========================================================
   WEEKDAYS
========================================================= */

.ec-panel-calendar .ec-weekdays{
    display:grid;

    grid-template-columns:
        repeat(7,minmax(0,1fr));

    gap:4px;

    padding:11px 12px;

    border-bottom:1px solid #f0f1f5;

    background:#fbfbfe;
}

.ec-panel-calendar .ec-weekdays span{
    text-align:center;

    color:#7f8498;

    font-size:10px;
    line-height:1;

    font-weight:800;

    text-transform:uppercase;

    letter-spacing:.5px;
}


/* =========================================================
   CALENDAR GRID
========================================================= */

.ec-panel-calendar .ec-calendar-grid{
    flex:1;

    min-height:0;

    display:grid;

    grid-template-columns:
        repeat(7,minmax(0,1fr));

    grid-template-rows:
        repeat(6,1fr);

    gap:5px;

    padding:11px 12px 13px;
}


/*
   Each date cell has two dedicated rows:
   date number above, category dots below.
*/
.ec-panel-calendar .ec-day{
    position:relative;

    min-width:0;
    min-height:0;

    display:grid;

    grid-template-rows:
        minmax(0,1fr)
        8px;

    align-items:center;
    justify-items:center;

    padding:7px 4px 6px;

    border:1px solid transparent;
    border-radius:11px;

    background:#fff;

    color:#50556a;

    cursor:pointer;

    transition:
        border-color .14s ease,
        background .14s ease,
        box-shadow .14s ease,
        transform .14s ease;
}

.ec-panel-calendar .ec-day:hover{
    border-color:#e4deff;

    background:#faf9ff;

    transform:translateY(-1px);
}

.ec-panel-calendar .ec-day.outside{
    visibility:hidden;

    pointer-events:none;
}

.ec-panel-calendar .ec-day.today:not(.selected){
    border-color:#cbc2ff;

    background:#faf9ff;
}

.ec-panel-calendar .ec-day.selected{
    border-color:transparent;

    background:
        linear-gradient(
            145deg,
            #6547ed,
            #836af8
        );

    color:#fff;

    box-shadow:
        0 7px 17px rgba(108,76,245,.19);

    transform:none;
}

.ec-panel-calendar .ec-day-number{
    grid-row:1;

    align-self:center;

    display:block;

    color:inherit;

    font-size:12.5px;
    line-height:1;

    font-weight:800;

    font-variant-numeric:tabular-nums;
}


/* =========================================================
   EVENT COUNT â€” NEVER SHOWN INSIDE CALENDAR
========================================================= */

.ec-panel-calendar .ec-day-count,
.ec-panel-calendar .ec-day.selected .ec-day-count,
.ec-panel-calendar .ec-day.today .ec-day-count{
    display:none !important;
}


/* =========================================================
   CATEGORY DOTS
========================================================= */

.ec-panel-calendar .ec-calendar-dots{
    position:static;

    grid-row:2;

    align-self:center;

    display:flex;
    align-items:center;
    justify-content:center;

    gap:3px;

    width:auto;
    height:5px;

    margin:0;

    transform:none;
}

.ec-panel-calendar .ec-calendar-dot{
    width:4.5px;
    height:4.5px;

    flex:0 0 4.5px;

    border-radius:50%;
}

.ec-panel-calendar .ec-calendar-dot.result{
    background:var(--ec-result);
}

.ec-panel-calendar .ec-calendar-dot.call{
    background:var(--ec-call);
}

.ec-panel-calendar .ec-calendar-dot.event{
    background:var(--ec-event);
}

.ec-panel-calendar .ec-day.selected .ec-calendar-dot{
    box-shadow:
        0 0 0 1px rgba(255,255,255,.22);
}


/* =========================================================
   PROMO CARD
   Single-column / stacked content, not two columns
========================================================= */

.ec-calendar-promo{
    grid-area:extra;

    position:relative;

    min-width:0;
    width:100%;

    height:152px;
    min-height:152px;

    overflow:hidden;

    display:flex;
    flex-direction:column;

    gap:8px;

    padding:14px 17px 13px;

    border:0;
    border-radius:17px;

    color:#fff;

    background:
        radial-gradient(
            circle at 88% 4%,
            rgba(151,119,255,.52),
            transparent 38%
        ),
        linear-gradient(
            125deg,
            #241568 0%,
            #4220a4 46%,
            #704cf2 100%
        );

    box-shadow:
        0 12px 28px rgba(83,57,190,.17);
}


/* Abstract lines */

.ec-promo-decoration{
    position:absolute;

    pointer-events:none;

    border:1.25px solid rgba(255,255,255,.16);
    border-radius:999px;

    transform:rotate(-13deg);
}

.ec-promo-decoration-one{
    width:430px;
    height:92px;

    top:-34px;
    right:-165px;
}

.ec-promo-decoration-two{
    width:410px;
    height:84px;

    top:75px;
    right:-142px;
}


/* Top row */

.ec-promo-top{
    position:relative;

    z-index:2;

    width:100%;

    display:flex;
    align-items:center;

    gap:8px;

    flex:0 0 auto;
}

.ec-promo-icon,
.ec-promo-refresh{
    width:34px;
    height:34px;

    display:grid;
    place-items:center;

    border-radius:10px;
}

.ec-promo-icon{
    background:#fff;

    color:#6748ec;

    box-shadow:
        0 5px 12px rgba(18,10,60,.13);
}

.ec-promo-icon svg{
    width:17px;
    height:17px;

    stroke-width:2.1;
}

.ec-promo-refresh{
    padding:0;

    border:1px solid rgba(255,255,255,.25);

    background:rgba(255,255,255,.10);

    color:#fff;

    cursor:pointer;

    backdrop-filter:blur(7px);

    transition:
        background .16s ease,
        transform .16s ease;
}

.ec-promo-refresh:hover{
    background:rgba(255,255,255,.18);

    transform:rotate(12deg);
}

.ec-promo-refresh svg{
    width:17px;
    height:17px;
}

.ec-promo-live{
    margin-left:auto;

    display:inline-flex;
    align-items:center;

    gap:5px;

    height:24px;

    padding:0 8px;

    border:1px solid rgba(255,255,255,.20);
    border-radius:999px;

    background:rgba(255,255,255,.11);

    color:rgba(255,255,255,.92);

    font-size:8px;
    line-height:1;

    font-weight:800;

    letter-spacing:.7px;

    backdrop-filter:blur(7px);
}

.ec-promo-live > span{
    width:5px;
    height:5px;

    border-radius:50%;

    background:#70f1cf;

    box-shadow:
        0 0 0 3px rgba(112,241,207,.12);
}


/* Copy is below the icon row */

.ec-promo-copy{
    position:relative;

    z-index:2;

    min-width:0;

    margin:0;
}

.ec-promo-copy h2{
    max-width:400px;

    margin:0;

    color:#fff;

    font-size:20px;
    line-height:1.08;

    font-weight:800;

    letter-spacing:-.5px;
}

/* Avoid unnecessary forced line break from the HTML */
.ec-promo-copy h2 br{
    display:none;
}

.ec-promo-copy p{
    max-width:560px;

    margin:5px 0 0;

    color:rgba(255,255,255,.82);

    font-size:10.5px;
    line-height:1.35;

    font-weight:500;
}


/* Bottom row */

.ec-promo-footer{
    position:relative;

    z-index:2;

    display:flex;
    align-items:center;

    gap:15px;

    min-width:0;

    margin-top:auto;
}

.ec-promo-footer span{
    display:inline-flex;
    align-items:center;

    gap:5px;

    color:rgba(255,255,255,.82);

    font-size:9px;
    line-height:1;

    font-weight:700;

    white-space:nowrap;
}

.ec-promo-footer svg{
    width:11px;
    height:11px;
}


/* =========================================================
   RESPONSIVE FINAL LAYOUT
========================================================= */

/* =========================================================
   CANONICAL RESPONSIVE PROFILE — (max-width:1450px)
   Safely consolidated equivalent breakpoint groups.
   ========================================================= */
@media (max-width:1450px){
  /* Component group 1 */
    .ec-event-card h4{
        font-size:12px;
    }

  /* Component group 2 */
    .ec-layout{
        grid-template-columns:
            minmax(340px,1.07fr)
            repeat(3,minmax(260px,1fr));

        grid-template-rows:
            auto
            148px;
    }

    .ec-calendar-promo{
        height:148px;
        min-height:148px;

        padding:13px 15px 12px;
    }

    .ec-promo-copy h2{
        font-size:18px;
    }

    .ec-promo-copy p{
        font-size:10px;
    }

    .ec-promo-footer span{
        font-size:8.5px;
    }

}



@media(max-width:1250px){

    .ec-layout{
        grid-template-columns:
            repeat(2,minmax(0,1fr));

        grid-template-rows:auto;

        grid-template-areas:
            "calendar extra"
            "results concall"
            "events events";
    }

    .ec-panel-calendar{
        aspect-ratio:1 / 1;
    }

    .ec-calendar-promo{
        height:auto;
        min-height:170px;

        align-self:stretch;
    }
}


@media(max-width:950px){

    .ec-page-head{
        grid-template-columns:1fr;

        gap:12px;
    }

    .ec-head-tools{
        width:100%;

        justify-content:flex-start;
    }

    .ec-search{
        width:min(100%,460px);
    }

    .ec-scope-strip{
        margin-left:0;
    }
}


.ec-time-strip{
    margin-left:auto;
    gap:5px;
    padding:5px;
    border-color:#dddff0;
    border-radius:13px;
    box-shadow:0 4px 14px rgba(59,47,116,.035);
}

.ec-time-strip .ec-filter-btn{
    height:34px;
    padding:0 14px;
    border-radius:9px;
    font-size:11px;
    font-weight:800;
    letter-spacing:.01em;
}

.ec-time-strip .ec-filter-btn svg{
    width:14px;
    height:14px;
    stroke-width:2;
}

.ec-time-strip .ec-filter-btn[data-filter-time="upcoming"] svg{
    color:#6f55ed;
}

.ec-time-strip .ec-filter-btn[data-filter-time="today"] svg{
    color:#3d7cf4;
}

.ec-time-strip .ec-filter-btn[data-filter-time="past"] svg{
    color:#8a8fa2;
}

.ec-time-strip .ec-filter-btn.active{
    color:#5d43dc;
    background:linear-gradient(180deg,#f5f2ff 0%,#efebff 100%);
    box-shadow:inset 0 0 0 1px #d8d0ff,0 4px 10px rgba(93,67,220,.06);
}

.ec-time-strip .ec-filter-btn.active svg{
    color:#5d43dc;
}

/* Aggregated Upcoming/Past cards carry date + time in the top line. */
.ec-event-time{
    max-width:72%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

@media(max-width:950px){
    .ec-time-strip{
        margin-left:0;
    }
}


/*
   Keep the three event columns at a stable desktop height so
   Upcoming / Past views do not stretch the full page.
   The cards inside each column scroll independently.
*/
.ec-layout{
    --ec-event-column-height:596px;
}

.ec-panel-results,
.ec-panel-concall,
.ec-panel-events{
    height:var(--ec-event-column-height);
    min-height:var(--ec-event-column-height);
    max-height:var(--ec-event-column-height);

    align-self:stretch;
}

.ec-panel-results .ec-panel-head,
.ec-panel-concall .ec-panel-head,
.ec-panel-events .ec-panel-head{
    flex:0 0 auto;
}

.ec-panel-results .ec-scroll-list,
.ec-panel-concall .ec-scroll-list,
.ec-panel-events .ec-scroll-list{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    padding-right:8px;
}

@media(max-width:1250px){
    .ec-layout{
        --ec-event-column-height:430px;
    }

    .ec-panel-results,
    .ec-panel-concall,
    .ec-panel-events{
        height:var(--ec-event-column-height);
        min-height:var(--ec-event-column-height);
        max-height:var(--ec-event-column-height);
    }
}


.ec-range-control-row{
    justify-content:space-between;
    gap:14px;
    overflow:visible;
}

.ec-range-summary{
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
    padding:7px 10px;
    border:1px solid #e1e2ec;
    border-radius:13px;
    background:#fff;
    box-shadow:0 3px 10px rgba(42,35,80,.025);
}

.ec-range-icon{
    width:32px;
    height:32px;
    flex:0 0 32px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#f2efff;
    color:var(--ec-purple);
}

.ec-range-icon svg{
    width:16px;
    height:16px;
}

.ec-range-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
}

.ec-range-copy strong{
    color:#34384b;
    font-size:11px;
    line-height:1.15;
    font-weight:800;
    white-space:nowrap;
}

.ec-range-copy small{
    color:#8a90a4;
    font-size:9.5px;
    line-height:1.2;
    font-weight:600;
    white-space:nowrap;
}

.ec-range-reset{
    height:30px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:0 9px;
    border:1px solid #ddd6ff;
    border-radius:9px;
    background:#faf9ff;
    color:#6149dc;
    font-size:9.5px;
    font-weight:800;
    cursor:pointer;
}

.ec-range-reset:hover{
    background:#f2eeff;
}

.ec-range-reset svg{
    width:13px;
    height:13px;
}

.ec-time-strip .ec-filter-btn{
    gap:6px;
}

.ec-time-strip .ec-filter-btn > svg{
    width:14px;
    height:14px;
}

.ec-time-strip .ec-filter-btn small{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:24px;
    height:18px;
    padding:0 5px;
    border-radius:999px;
    background:#f5f3fb;
    color:#8b90a2;
    font-size:8px;
    font-weight:850;
    letter-spacing:.1px;
}

.ec-time-strip .ec-filter-btn.active small{
    background:#fff;
    color:#6650df;
}

/* Calendar range selection */
.ec-panel-calendar .ec-day.in-range:not(.range-start):not(.range-end):not(.selected){
    border-radius:7px;
    background:#f3efff;
    color:#5e4bd1;
}

.ec-panel-calendar .ec-day.range-start:not(.selected),
.ec-panel-calendar .ec-day.range-end:not(.selected){
    border-color:transparent;
    background:linear-gradient(145deg,#6547ed,#836af8);
    color:#fff;
    box-shadow:0 6px 15px rgba(108,76,245,.18);
}

.ec-panel-calendar .ec-day.range-pending{
    box-shadow:
        0 0 0 3px rgba(108,76,245,.10),
        0 6px 15px rgba(108,76,245,.18);
}

.ec-panel-calendar .ec-day.in-range .ec-calendar-dot{
    box-shadow:0 0 0 1px rgba(255,255,255,.55);
}

.ec-panel-calendar .ec-day.range-start .ec-calendar-dot,
.ec-panel-calendar .ec-day.range-end .ec-calendar-dot,
.ec-panel-calendar .ec-day.selected .ec-calendar-dot{
    box-shadow:0 0 0 1px rgba(255,255,255,.75);
}

@media(max-width:1100px){
    .ec-range-control-row{
        align-items:stretch;
        flex-direction:column;
    }

    .ec-range-summary{
        width:100%;
    }

    .ec-time-strip{
        align-self:flex-end;
    }
}


.ec-participation{
    margin-top:14px;
    padding:0;
    border:1px solid #e4e2ef;
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 26px rgba(45,39,76,.045);
    overflow:visible;
}
.ec-participation[hidden],.ec-attended-fields[hidden]{display:none!important;}
.ec-participation-shell{padding:14px;}
.ec-participation-head{
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding:1px 1px 12px;border-bottom:1px solid #f0eef5
;}
.ec-participation-title-group{display:flex;align-items:center;gap:10px;min-width:0;}
.ec-participation-icon{
    width:34px;height:34px;flex:0 0 34px;display:inline-flex;align-items:center;justify-content:center;
    border-radius:10px;background:#f1edff;color:#684df0
;}
.ec-participation-icon svg{width:16px;height:16px;stroke-width:1.9;}
.ec-participation-kicker{display:block;margin-bottom:3px;color:#8a78df;font-size:7.5px;font-weight:900;letter-spacing:1px;text-transform:uppercase;}
.ec-participation-head h4{margin:0;color:#292c3e;font-size:14px;line-height:1.18;font-weight:850;}
.ec-participation-head p{margin:3px 0 0;color:#8b90a2;font-size:9px;line-height:1.3;font-weight:600;}
.ec-private-pill{
    display:inline-flex;align-items:center;gap:5px;min-height:25px;padding:0 8px;border:1px solid #e6e2f9;
    border-radius:999px;background:#f8f6ff;color:#6d57cb;font-size:8px;font-weight:850;white-space:nowrap
;}
.ec-private-pill svg{width:11px;height:11px;stroke-width:2;}
.ec-participation-section{padding-top:12px;}
.ec-participation-section+.ec-participation-section{margin-top:11px;padding-top:12px;border-top:1px solid #f0eef5;}
.ec-participation-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;}
.ec-participation-section-head>div>strong,.ec-section-title-with-icon strong{display:block;color:#35384b;font-size:10px;font-weight:850;}
.ec-participation-section-head>div>small,.ec-section-title-with-icon small{display:block;margin-top:2px;color:#9498a9;font-size:8px;line-height:1.25;font-weight:600;}
.ec-section-title-with-icon{display:flex;align-items:center;gap:8px;min-width:0;}
.ec-section-title-with-icon>span{
    width:27px;height:27px;flex:0 0 27px;display:inline-flex;align-items:center;justify-content:center;
    border-radius:8px;background:#f5f3fd;color:#7058dd
;}
.ec-section-title-with-icon>span svg{width:13px;height:13px;stroke-width:1.9;}
.ec-optional-label{color:#9a9eaf;font-size:7.5px;font-weight:800;text-transform:uppercase;letter-spacing:.55px;}
.ec-participation-current,.ec-participation-card-status{
    display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;
    background:#f2f3f7;color:#74798c;font-size:8px;font-weight:850;white-space:nowrap
;}
.ec-participation-current.is-attending,.ec-participation-card-status.is-attending{background:#f1edff;color:#6247dc;}
.ec-participation-current.is-not-attending,.ec-participation-card-status.is-not-attending{background:#fff0f2;color:#c95163;}
.ec-participation-current.is-attended,.ec-participation-card-status.is-attended{background:#eaf8f3;color:#148267;}
.ec-event-card-top .ec-participation-card-status{margin-left:auto;flex:0 0 auto;}
.ec-participation-statuses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.ec-participation-statuses button{
    min-height:44px;display:flex;align-items:center;gap:8px;padding:6px 9px;border:1px solid #e1e2ea;border-radius:11px;
    background:#fff;color:#6d7284;font-family:inherit;cursor:pointer;text-align:left;transition:.14s ease
;}
.ec-participation-statuses button:hover{border-color:#cfc8f5;background:#faf9ff;color:#604bd0;}
.ec-status-icon{
    width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;
    border-radius:8px;background:#f5f5f9;color:#777c8e
;}
.ec-status-icon svg{width:13px;height:13px;stroke-width:1.9;}
.ec-status-copy{display:block;min-width:0;}
.ec-status-copy strong{display:block;font-size:9px;line-height:1.1;font-weight:850;color:inherit;white-space:nowrap;}
.ec-status-copy small{display:block;margin-top:3px;font-size:7.5px;line-height:1;font-weight:650;color:#9a9eae;}
.ec-participation-statuses button.active[data-attendance="attending"]{border-color:#cec4ff;background:#f4f1ff;color:#6247dc;box-shadow:0 0 0 2px rgba(108,76,245,.05);}
.ec-participation-statuses button.active[data-attendance="attending"] .ec-status-icon{background:#e9e3ff;color:#6247dc;}
.ec-participation-statuses button.active[data-attendance="not_attending"]{border-color:#ffd0d8;background:#fff4f5;color:#c95163;box-shadow:0 0 0 2px rgba(201,81,99,.04);}
.ec-participation-statuses button.active[data-attendance="not_attending"] .ec-status-icon{background:#ffe7eb;color:#c95163;}
.ec-participation-statuses button.active[data-attendance="attended"]{border-color:#bce9dd;background:#effaf6;color:#148267;box-shadow:0 0 0 2px rgba(20,130,103,.04);}
.ec-participation-statuses button.active[data-attendance="attended"] .ec-status-icon{background:#daf3ea;color:#148267;}
.ec-attended-fields{margin-top:11px;padding-top:1px;border-top:1px solid #f0eef5;}
.ec-feedback-section textarea{
    width:100%;min-height:76px;padding:10px 11px;border:1px solid #dedfe8;border-radius:10px;outline:none;
    background:#fbfbfd;color:#292c3e;font:600 10.5px/1.48 inherit;resize:vertical;transition:.14s ease
;}
.ec-feedback-section textarea:focus{border-color:#a997f2;background:#fff;box-shadow:0 0 0 3px rgba(108,76,245,.07);}
.ec-add-participant{
    min-height:29px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border:1px solid #d8d2f7;border-radius:9px;
    background:#f8f6ff;color:#654bdd;font-family:inherit;font-size:8.5px;font-weight:850;cursor:pointer;white-space:nowrap
;}
.ec-add-participant:hover{background:#f0ecff;border-color:#cbbfff;}
.ec-add-participant svg{width:11px;height:11px;stroke-width:2;}
.ec-participants-list{display:flex;flex-direction:column;gap:7px;}
.ec-participants-empty{
    min-height:52px;display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px dashed #ddd9ef;border-radius:11px;background:#fcfbff
;}
.ec-participants-empty-icon{
    width:29px;height:29px;flex:0 0 29px;display:inline-flex;align-items:center;justify-content:center;
    border-radius:9px;background:#f1edff;color:#6b50df
;}
.ec-participants-empty-icon svg{width:13px;height:13px;stroke-width:1.8;}
.ec-participants-empty strong{display:block;color:#515568;font-size:9px;font-weight:820;}
.ec-participants-empty small{display:block;margin-top:2px;color:#9a9eaf;font-size:7.8px;line-height:1.25;font-weight:600;}
.ec-participant-card{
    position:relative;display:grid;grid-template-columns:25px minmax(0,1fr) minmax(0,1fr) 29px;gap:7px;align-items:end;
    padding:8px;border:1px solid #e9e7f0;border-radius:11px;background:#fcfcfe;overflow:visible
;}
.ec-participant-card:focus-within{border-color:#d8d1f6;background:#fff;box-shadow:0 4px 14px rgba(78,62,143,.045);}
.ec-participant-number{
    width:25px;height:35px;display:flex;align-items:center;justify-content:center;color:#8d82c8;font-size:7.5px;font-weight:900;letter-spacing:.3px
;}
.ec-participant-field{min-width:0;}
.ec-participant-field label>span{display:flex;align-items:center;gap:4px;margin-bottom:5px;color:#71768a;font-size:8px;font-weight:850;}
.ec-participant-field label svg{width:10px;height:10px;stroke-width:1.9;}
.ec-smart-input-wrap{position:relative;min-width:0;}
.ec-participant-field input{
    width:100%;height:35px;padding:0 31px 0 10px;border:1px solid #dedfe8;border-radius:9px;outline:none;
    background:#fff;color:#292c3e;font:650 10px/1 inherit;transition:.14s ease
;}
.ec-participant-field input:focus{border-color:#a997f2;box-shadow:0 0 0 3px rgba(108,76,245,.07);}
.ec-smart-search-icon{position:absolute;right:10px;top:50%;width:12px;height:12px;transform:translateY(-50%);color:#9a9eb0;pointer-events:none;stroke-width:1.8;}
.ec-participant-remove{
    width:29px;height:35px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #f0dadd;border-radius:9px;
    background:#fff8f8;color:#c45b6a;cursor:pointer
;}
.ec-participant-remove:hover{background:#fff0f2;border-color:#efc7ce;}
.ec-participant-remove svg{width:13px;height:13px;stroke-width:2;}
.ec-smart-menu{
    position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:120;max-height:235px;overflow:auto;padding:5px;
    border:1px solid #ddd9eb;border-radius:11px;background:#fff;box-shadow:0 16px 34px rgba(42,35,73,.15)
;}
.ec-smart-menu[hidden]{display:none!important;}
.ec-smart-option{
    width:100%;min-height:46px;display:grid;grid-template-columns:29px minmax(0,1fr) auto;gap:8px;align-items:center;
    padding:6px 7px;border:0;border-radius:8px;background:#fff;color:#3d4053;font-family:inherit;text-align:left;cursor:pointer
;}
.ec-smart-option:hover,.ec-smart-option.active{background:#f6f3ff;color:#573fc4;}
.ec-smart-option-icon{
    width:29px;height:29px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#f1edff;color:#684cf0
;}
.ec-smart-option-icon svg{width:13px;height:13px;stroke-width:1.9;}
.ec-smart-option-copy{display:block;min-width:0;}
.ec-smart-option-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:850;color:inherit;}
.ec-smart-option-copy small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8d91a2;font-size:7.7px;font-weight:600;}
.ec-smart-source{min-height:19px;display:inline-flex;align-items:center;padding:0 6px;border-radius:999px;font-size:7px;font-weight:850;white-space:nowrap;}
.ec-smart-source.valorem{background:#f2f3f6;color:#777c8c;}
.ec-smart-source.private{background:#f1edff;color:#684bdc;}
.ec-smart-state{min-height:48px;display:flex;align-items:center;gap:8px;padding:7px 8px;color:#777c8e;}
.ec-smart-state>svg{width:15px;height:15px;color:#8270d7;stroke-width:1.8;}
.ec-smart-state strong{display:block;font-size:8.7px;font-weight:820;}
.ec-smart-state small{display:block;margin-top:2px;color:#9a9eae;font-size:7.6px;font-weight:600;}
.ec-participation-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:13px;padding-top:12px;border-top:1px solid #f0eef5;}
.ec-participation-message{min-width:0;flex:1;color:#c95163;font-size:8.7px;font-weight:750;text-align:right;}
.ec-participation-message.success{color:#148267;}
.ec-participation-save{
    min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 13px;border:0;border-radius:10px;
    background:#6c4cf5;color:#fff;font-family:inherit;font-size:9px;font-weight:850;cursor:pointer;box-shadow:0 5px 14px rgba(108,76,245,.16)
;}
.ec-participation-save:hover{background:#5e42e2;}.ec-participation-save:disabled{opacity:.62;cursor:wait;}
.ec-participation-save svg{width:12px;height:12px;stroke-width:2;}
.ec-participation-loading{display:flex;align-items:center;gap:10px;min-height:66px;padding:13px 14px;color:#767b8e;}
.ec-participation-loading strong{display:block;font-size:9.5px;font-weight:820;}.ec-participation-loading small{display:block;margin-top:2px;color:#9a9eae;font-size:8px;font-weight:600;}
.ec-participation-spinner{width:15px;height:15px;flex:0 0 15px;border:2px solid #e7e3f8;border-top-color:#6c4cf5;border-radius:50%;animation:ecParticipationSpin .7s linear infinite;}
.ec-participation-spinner.small{width:12px;height:12px;flex-basis:12px;border-width:1.5px;border-color:rgba(255,255,255,.45);border-top-color:#fff;}
.ec-participation-error{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid #ffd9df;border-radius:11px;background:#fff7f8;color:#b94d5d;}
.ec-participation-error>svg{width:15px;height:15px;flex:0 0 15px;stroke-width:1.8;}
.ec-participation-error strong{display:block;font-size:9px;font-weight:850;}.ec-participation-error span{display:block;margin-top:2px;font-size:8px;font-weight:650;}
@keyframes ecParticipationSpin{to{transform:rotate(360deg)}}


/* --- overall workspace: quieter container, clearer hierarchy --- */
.calendar-module .ec-participation{
    margin-top:16px;
    border-color:#e6e4ee;
    border-radius:15px;
    box-shadow:0 5px 18px rgba(45,39,76,.035);
}
.calendar-module .ec-participation-shell{padding:16px 16px 14px;}
.calendar-module .ec-participation-head{gap:16px;padding:0 0 14px;}
.calendar-module .ec-participation-title-group{gap:11px;}
.calendar-module .ec-participation-icon{width:32px;height:32px;flex-basis:32px;border-radius:9px;}
.calendar-module .ec-participation-icon svg{width:15px;height:15px;}
.calendar-module .ec-participation-kicker{margin-bottom:4px;font-size:8px;letter-spacing:.9px;}
.calendar-module .ec-participation-head h4{font-size:15px;line-height:1.15;letter-spacing:-.15px;}
.calendar-module .ec-participation-head p{margin-top:4px;font-size:9.5px;line-height:1.35;font-weight:550;}
.calendar-module .ec-private-pill{min-height:24px;padding:0 8px;font-size:8.5px;}

/* --- sections --- */
.calendar-module .ec-participation-section{padding-top:14px;}
.calendar-module .ec-participation-section+.ec-participation-section{margin-top:14px;padding-top:14px;border-top-color:#f1eff5;}
.calendar-module .ec-participation-section-head{gap:14px;margin-bottom:10px;}
.calendar-module .ec-participation-section-head>div>strong,
.calendar-module .ec-section-title-with-icon strong{font-size:11px;line-height:1.18;}
.calendar-module .ec-participation-section-head>div>small,
.calendar-module .ec-section-title-with-icon small{margin-top:3px;font-size:9px;line-height:1.3;font-weight:550;}
.calendar-module .ec-section-title-with-icon{gap:9px;}
.calendar-module .ec-section-title-with-icon>span{width:26px;height:26px;flex-basis:26px;border-radius:8px;}
.calendar-module .ec-optional-label{font-size:8px;letter-spacing:.45px;}

/* --- attendance --- */
.calendar-module .ec-participation-statuses{gap:8px;}
.calendar-module .ec-participation-statuses button{
    min-height:40px;justify-content:center;gap:7px;padding:5px 10px;border-radius:10px;text-align:center
;}
.calendar-module .ec-status-icon{width:25px;height:25px;flex-basis:25px;border-radius:7px;}
.calendar-module .ec-status-icon svg{width:12px;height:12px;}
.calendar-module .ec-status-copy strong{font-size:9.5px;line-height:1;letter-spacing:.01em;}
.calendar-module .ec-status-copy small{display:none;}
.calendar-module .ec-attended-fields{margin-top:13px;padding-top:0;border-top:0;}

/* --- feedback --- */
.calendar-module .ec-feedback-section textarea{
    min-height:72px;padding:10px 12px;border-radius:10px;
    font-family:inherit;font-size:11px;line-height:1.45;font-weight:550;color:#35384b
;}
.calendar-module .ec-feedback-section textarea::placeholder{
    color:#969aaa;font-family:inherit;font-size:10.5px;line-height:1.45;font-weight:500;opacity:1
;}

/* --- participants --- */
.calendar-module .ec-participants-list{gap:8px;}
.calendar-module .ec-participant-card{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px;
    gap:8px;align-items:end;padding:9px;border-color:#e7e5ed;border-radius:10px;background:#fdfdfe
;}
.calendar-module .ec-participant-number{display:none;}
.calendar-module .ec-participant-field label>span{
    gap:5px;margin-bottom:6px;color:#686d80;font-size:9px;line-height:1
;}
.calendar-module .ec-participant-field label svg{width:11px;height:11px;}
.calendar-module .ec-participant-field input{
    height:36px;padding:0 31px 0 10px;border-radius:8px;
    font-family:inherit;font-size:10.5px;line-height:1;font-weight:600
;}
.calendar-module .ec-participant-field input::placeholder{
    color:#9b9fae;font-family:inherit;font-size:10px;font-weight:500;opacity:1
;}
.calendar-module .ec-smart-search-icon{right:10px;width:12px;height:12px;}
.calendar-module .ec-participant-remove{width:32px;height:36px;border-radius:8px;}
.calendar-module .ec-add-participant{min-height:28px;padding:0 9px;border-radius:8px;font-size:9px;}

/* --- search suggestions --- */
.calendar-module .ec-smart-menu{top:calc(100% + 6px);max-height:225px;padding:5px;border-radius:10px;}
.calendar-module .ec-smart-option{min-height:48px;gap:9px;padding:7px 8px;}
.calendar-module .ec-smart-option-copy strong{font-size:10px;line-height:1.15;}
.calendar-module .ec-smart-option-copy small{margin-top:3px;font-size:8.5px;line-height:1.2;}
.calendar-module .ec-smart-source{min-height:20px;padding:0 6px;font-size:7.5px;}
.calendar-module .ec-smart-state strong{font-size:9.5px;}
.calendar-module .ec-smart-state small{font-size:8.5px;}

/* --- footer --- */
.calendar-module .ec-participation-footer{gap:10px;margin-top:12px;padding-top:10px;border-top-color:#f3f1f6;}
.calendar-module .ec-participation-message{font-size:9px;}
.calendar-module .ec-participation-save{
    min-height:34px;padding:0 14px;border-radius:9px;font-size:9.5px;
    box-shadow:0 4px 11px rgba(108,76,245,.14)
;}


/* =========================================================
   CANONICAL RESPONSIVE PROFILE — (max-width:640px)
   Safely consolidated equivalent breakpoint groups.
   ========================================================= */
@media (max-width:640px){
  /* Component group 1 */
  .ec-participation-statuses{grid-template-columns:1fr;}
  .ec-participation-statuses button{min-height:40px;}
  .ec-participation-section-head.ec-participants-head{align-items:flex-start;flex-direction:column;}
  .ec-participation-head{align-items:flex-start;}
  .ec-participation-save{width:100%;}.ec-participation-footer{flex-direction:column;}.ec-participation-message{text-align:left;width:100%;}

  /* Component group 2 */
    .calendar-module .ec-participation-shell{padding:14px;}
    .calendar-module .ec-participation-head h4{font-size:14px;}
    .calendar-module .ec-participation-statuses button{min-height:38px;}

}


.calendar-module .ec-workspace-tabs{display:inline-flex;align-items:center;gap:3px;margin:0 3px 12px;padding:3px;border:1px solid #e0e2eb;border-radius:11px;background:#f8f8fc;}.calendar-module .ec-workspace-tab{min-height:31px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#73798d;font-family:inherit;font-size:9px;font-weight:800;cursor:pointer;}.calendar-module .ec-workspace-tab svg{width:13px;height:13px;stroke-width:1.8;}.calendar-module .ec-workspace-tab small{min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border-radius:999px;background:#f0eef7;color:#85899a;font-size:7.5px;}.calendar-module .ec-workspace-tab.active{border-color:#d7ceff;background:#fff;color:#6347dd;box-shadow:0 2px 7px rgba(86,65,171,.07);}.calendar-module .ec-workspace-tab.active small{background:#eee9ff;color:#674be0;}.calendar-module.ec-history-active .ec-head-tools{visibility:hidden;pointer-events:none;}
.calendar-module .ec-history-view{min-width:0;}.calendar-module .ec-history-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 12px;padding:15px 16px;border:1px solid #e4e5ed;border-radius:14px;background:#fff;}.calendar-module .ec-history-kicker{display:block;margin-bottom:5px;color:#7c68df;font-size:8px;font-weight:850;letter-spacing:.11em;}.calendar-module .ec-history-toolbar h2{margin:0;color:#272a3b;font-size:20px;line-height:1;font-weight:850;letter-spacing:-.45px;}.calendar-module .ec-history-toolbar h2 strong{color:#694df0;}.calendar-module .ec-history-toolbar p{margin:6px 0 0;color:#858b9e;font-size:9.5px;line-height:1.35;font-weight:550;}.calendar-module .ec-history-search{position:relative;width:min(390px,36vw);}.calendar-module .ec-history-search svg{position:absolute;left:12px;top:50%;width:14px;height:14px;transform:translateY(-50%);color:#969bad;}.calendar-module .ec-history-search input{width:100%;height:38px;padding:0 12px 0 35px;border:1px solid #dfe2ea;border-radius:10px;outline:0;background:#fff;color:#34384b;font-family:inherit;font-size:10px;font-weight:600;}.calendar-module .ec-history-search input:focus{border-color:#cfc4ff;box-shadow:0 0 0 3px rgba(108,76,245,.06);}
.calendar-module .ec-history-filters{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding:8px 10px;border:1px solid #e4e6ee;border-radius:12px;background:#fff;}.calendar-module .ec-history-filter-group{display:flex;align-items:center;gap:4px;}.calendar-module .ec-history-filter-group>span{margin-right:3px;color:#9397a8;font-size:7.5px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;}.calendar-module .ec-history-filter-group button,.calendar-module .ec-history-reset{min-height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:#73798b;font-family:inherit;font-size:8.5px;font-weight:800;cursor:pointer;}.calendar-module .ec-history-filter-group button svg,.calendar-module .ec-history-reset svg{width:12px;height:12px;}.calendar-module .ec-history-filter-group button.active{border-color:#d8d1fa;background:#f6f3ff;color:#674be0;}.calendar-module .ec-history-filter-divider{width:1px;height:20px;background:#ececf2;}.calendar-module .ec-history-reset{margin-left:auto;border-color:#e3e4eb;background:#fafafd;}
.calendar-module .ec-history-stats{display:grid;gap:9px;margin-bottom:12px;}.calendar-module .ec-history-stats article{display:flex;align-items:center;gap:10px;min-height:62px;padding:10px 12px;border:1px solid #e4e6ed;border-radius:12px;background:#fff;}.calendar-module .ec-history-stats .icon{width:31px;height:31px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#f4f1ff;color:#6b4ff0;}.calendar-module .ec-history-stats .icon svg{width:14px;height:14px;}.calendar-module .ec-history-stats .icon.attended{background:#eaf8f3;color:#168568;}.calendar-module .ec-history-stats .icon.attending{background:#eef3ff;color:#526ec1;}.calendar-module .ec-history-stats .icon.feedback{background:#fff7ea;color:#b17817;}.calendar-module .ec-history-stats small{display:block;color:#8d92a4;font-size:7.5px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;}.calendar-module .ec-history-stats strong{display:block;margin-top:4px;color:#292d40;font-size:17px;line-height:1;font-weight:850;}
.calendar-module .ec-history-table{--ec-hgrid:90px minmax(190px,1.3fr) 82px 115px minmax(260px,2fr) minmax(220px,1.45fr) 92px;}.calendar-module .ec-history-head,.calendar-module .ec-history-row{display:grid;grid-template-columns:var(--ec-hgrid);align-items:center;}.calendar-module .ec-history-head{padding:0 8px 6px;}.calendar-module .ec-history-head>div{color:#9095a6;font-size:7.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;}.calendar-module .ec-history-rows{display:flex;flex-direction:column;gap:7px;}.calendar-module .ec-history-row{min-height:64px;border:1px solid #e4e6ed;border-radius:11px;background:#fff;overflow:hidden;}.calendar-module .ec-history-row>div{min-width:0;padding:9px;border-left:1px solid #f0f1f5;}.calendar-module .ec-history-row>div:first-child{border-left:0;}.calendar-module .ec-history-date span{color:#654add;font-size:9px;font-weight:850;}.calendar-module .ec-history-event strong{display:block;color:#2f3346;font-size:10.8px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.calendar-module .ec-history-event small{display:block;margin-top:3px;color:#9095a6;font-size:8.2px;}.calendar-module .ec-history-type,.calendar-module .ec-history-status{display:inline-flex;align-items:center;gap:4px;min-height:21px;padding:0 7px;border-radius:999px;font-size:8.2px;font-weight:800;}.calendar-module .ec-history-type{background:#f4f1ff;color:#694fdc;}.calendar-module .ec-history-type.call{background:#eaf8f5;color:#16816e;}.calendar-module .ec-history-type svg{width:10px;height:10px;}.calendar-module .ec-history-status.attended{background:#e9f8f3;color:#168365;}.calendar-module .ec-history-status.attending{background:#edf3ff;color:#4e69b9;}.calendar-module .ec-history-status.not_attending{background:#f3f3f6;color:#74798b;}.calendar-module .ec-history-feedback p{margin:0;color:#414658;font-size:9.5px;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}.calendar-module .ec-history-muted{color:#a0a4b1;}.calendar-module .ec-history-people{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}.calendar-module .ec-history-person{max-width:100%;display:inline-flex;flex-direction:column;min-height:25px;padding:4px 6px;border-radius:7px;background:#f7f7fa;}.calendar-module .ec-history-person strong{max-width:150px;color:#52586b;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.calendar-module .ec-history-person small{max-width:150px;margin-top:2px;color:#969aaa;font-size:7.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.calendar-module .ec-history-more{min-height:22px;display:inline-flex;align-items:center;padding:0 6px;border-radius:7px;background:#f0edff;color:#684edf;font-size:8px;font-weight:850;}.calendar-module .ec-history-updated strong{display:block;color:#52576a;font-size:8.7px;}.calendar-module .ec-history-updated small{display:block;margin-top:3px;color:#999dac;font-size:7.5px;}.calendar-module .ec-history-empty{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed #dfe1e9;border-radius:12px;background:#fbfbfd;color:#858a9c;font-size:9px;}.calendar-module .ec-history-empty>svg{width:20px;height:20px;color:#8a77df;}.calendar-module .ec-history-empty strong{color:#363a4d;font-size:11px;}.calendar-module .ec-history-empty.error{border-color:#f0d5d8;background:#fffafa;color:#aa5963;}
@media(max-width:1180px){.calendar-module .ec-history-table{--ec-hgrid:86px minmax(180px,1.2fr) 76px 105px minmax(220px,1.8fr) minmax(190px,1.3fr) 86px;}}
@media(max-width:980px){.calendar-module .ec-history-head{display:none;}.calendar-module .ec-history-row{grid-template-columns:1fr 1fr;}.calendar-module .ec-history-row>div{border-left:0;border-top:1px solid #f0f1f5;}.calendar-module .ec-history-row>div:nth-child(1),.calendar-module .ec-history-row>div:nth-child(2){border-top:0;}.calendar-module .ec-history-toolbar{align-items:stretch;flex-direction:column;}.calendar-module .ec-history-search{width:100%;}.calendar-module .ec-history-filters{flex-wrap:wrap;}.calendar-module .ec-history-reset{margin-left:0;}}


/* =========================================================
   IRCC EVENT CALENDAR — HEADER-INTEGRATED WORKSPACE TABS V3C
   Keeps Calendar / Participation History in the title row.
   ========================================================= */
.calendar-module .ec-title-row{
    align-items:center;
    gap:13px;
    min-width:0;
}
.calendar-module .ec-title-row h1{
    flex:0 0 auto;
}
.calendar-module .ec-title-row .ec-workspace-tabs{
    flex:0 0 auto;
    margin:0!important;
    align-self:center;
}
@media(max-width:1120px){
    .calendar-module .ec-title-row{
        flex-wrap:wrap;
        row-gap:8px;
    }
}

/* END IRCC EVENT CALENDAR — HEADER-INTEGRATED WORKSPACE TABS V3C */


/* =========================================================
   IRCC PARTICIPATION HISTORY — ATTENDED ONLY V3D
   ========================================================= */
.calendar-module .ec-history-stats{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.calendar-module .ec-history-stats .icon.people{
    background:#f1efff;
    color:#674de0;
}
.calendar-module .ec-history-table{
    --ec-hgrid:90px minmax(205px,1.3fr) 92px minmax(310px,2.1fr) minmax(235px,1.45fr) 96px;
}
.calendar-module .ec-history-filter-group button{
    gap:6px;
}
.calendar-module .ec-history-filter-group button svg{
    width:12px;
    height:12px;
}
@media(max-width:980px){
    .calendar-module .ec-history-stats{
        grid-template-columns:repeat(3,1fr);
    }
}
/* =========================================================
   CANONICAL RESPONSIVE PROFILE — (max-width:620px)
   Safely consolidated equivalent breakpoint groups.
   ========================================================= */
@media (max-width:620px){
  /* Component group 1 */
.calendar-module .ec-history-row{grid-template-columns:1fr;}.calendar-module .ec-history-row>div:nth-child(2){border-top:1px solid #f0f1f5;}.calendar-module .ec-history-filter-divider{display:none;}.calendar-module .ec-history-filter-group{flex-wrap:wrap;}

  /* Component group 2 */
    .calendar-module .ec-history-stats{
        grid-template-columns:1fr;
    }

}

/* END IRCC PARTICIPATION HISTORY — ATTENDED ONLY V3D */


/* =========================================================
   IRCC EVENT CALENDAR — HEADER LAYOUT STREAMLINE V3E
   Removes the duplicate Participation History title card and
   moves History search + type filters into the existing page head.
   ========================================================= */
.calendar-module .ec-head-tools--history{
  display:none;
}
.calendar-module.ec-history-active .ec-head-tools--calendar{
  display:none;
}
.calendar-module.ec-history-active .ec-head-tools--history{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.calendar-module .ec-history-inline-tools{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:nowrap;
}
.calendar-module .ec-head-tools--history .ec-history-filter-group{
  display:inline-flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  padding:0;
  margin:0;
  background:transparent;
  border:0;
}
.calendar-module .ec-head-tools--history .ec-history-filter-group > span{
  color:#969cae;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.calendar-module .ec-head-tools--history .ec-history-filter-group button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:40px;
  padding:0 14px;
  border:1px solid #dddff0;
  border-radius:12px;
  background:#fff;
  color:#71788d;
  font-size:13px;
  font-weight:700;
}
.calendar-module .ec-head-tools--history .ec-history-filter-group button.active{
  border-color:#d7cbff;
  background:#f7f4ff;
  color:#664bdd;
  box-shadow:0 6px 16px rgba(102,75,221,.08);
}
.calendar-module .ec-head-tools--history .ec-history-filter-group button svg{
  width:14px;
  height:14px;
}
.calendar-module .ec-history-search-inline{
  flex:0 1 460px;
  min-width:320px;
}
.calendar-module .ec-history-reset-head{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:0 14px;
  border:1px solid #dddff0;
  border-radius:14px;
  background:#fff;
  color:#788095;
  font-size:13px;
  font-weight:700;
}
.calendar-module .ec-history-reset-head svg{
  width:15px;
  height:15px;
}
.calendar-module .ec-history-view{
  margin-top:18px;
}
.calendar-module .ec-history-view .ec-history-stats{
  margin-top:0;
}
@media(max-width:1380px){
  .calendar-module .ec-page-head{
    grid-template-columns:1fr;
    gap:14px;
  }
  .calendar-module .ec-head-tools--history,
  .calendar-module.ec-history-active .ec-head-tools--history{
    justify-content:flex-start;
  }
  .calendar-module .ec-history-inline-tools{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}
@media(max-width:920px){
  .calendar-module .ec-history-search-inline{
    min-width:260px;
    flex:1 1 100%;
  }
}
/* =========================================================
   CANONICAL RESPONSIVE PROFILE — (max-width:680px)
   Safely consolidated equivalent breakpoint groups.
   ========================================================= */
@media (max-width:680px){
  /* Component group 1 */
    .calendar-module .ec-title-row{
        align-items:flex-start;
    }

  /* Component group 2 */
  .calendar-module .ec-head-tools--history .ec-history-filter-group{
    width:100%;
  }
  .calendar-module .ec-head-tools--history .ec-history-filter-group button,
  .calendar-module .ec-history-reset-head{
    min-height:38px;
    font-size:12px;
  }

}

/* END IRCC EVENT CALENDAR — HEADER LAYOUT STREAMLINE V3E */


/* =========================================================
   IRCC EVENT CALENDAR — HEADER TAB POSITION V3F
   Match Meeting Feedback: search/actions first, view toggle at far right.
   ========================================================= */

.calendar-module .ec-title-row{
    display:block;
}

/* Right side of the page header is now one action rail. */
.calendar-module .ec-head-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    min-width:0;
}

/* The currently relevant tool set sits immediately before the view toggle. */
.calendar-module .ec-head-actions > .ec-head-tools{
    min-width:0;
    margin:0;
}

.calendar-module .ec-head-actions .ec-head-tools--calendar{
    display:flex;
}

/* Participation History V3B had a blanket visibility:hidden rule for
   .ec-head-tools in history mode. Explicitly restore the selected tool row. */
.calendar-module.ec-history-active .ec-head-actions .ec-head-tools--calendar{
    display:none;
    visibility:hidden !important;
    pointer-events:none !important;
}

.calendar-module .ec-head-actions .ec-head-tools--history{
    display:none;
}

.calendar-module.ec-history-active .ec-head-actions .ec-head-tools--history{
    display:flex;
    visibility:visible !important;
    pointer-events:auto !important;
}

/* Keep the switcher visible in both Calendar and History modes. */
.calendar-module .ec-workspace-tabs--head{
    flex:0 0 auto;
    margin:0 !important;
    align-self:center;
    visibility:visible !important;
    pointer-events:auto !important;
}

/* Match the right-side treatment used on Meeting Feedback. */
.calendar-module .ec-workspace-tabs--head{
    min-height:44px;
    padding:4px;
    border-radius:13px;
}

.calendar-module .ec-workspace-tabs--head .ec-workspace-tab{
    min-height:34px;
    padding:0 13px;
    font-size:10px;
}

.calendar-module .ec-workspace-tabs--head .ec-workspace-tab svg{
    width:14px;
    height:14px;
}

/* Calendar search gets the same visual priority as Meeting Feedback search. */
.calendar-module .ec-head-actions .ec-head-tools--calendar .ec-search{
    width:min(500px,31vw);
}

/* History can be wider because it contains type + search + reset. */
.calendar-module .ec-head-actions .ec-head-tools--history{
    flex:1 1 auto;
}

.calendar-module .ec-head-actions .ec-history-inline-tools{
    justify-content:flex-end;
}

/* At normal laptop widths preserve one clean header row as long as possible. */
@media(max-width:1500px){
    .calendar-module .ec-head-actions{
        gap:9px;
    }

    .calendar-module .ec-workspace-tabs--head .ec-workspace-tab{
        padding:0 10px;
        font-size:9.5px;
    }
}

/* Only wrap when width genuinely requires it. */
@media(max-width:1180px){
    .calendar-module .ec-page-head{
        grid-template-columns:1fr;
        gap:12px;
    }

    .calendar-module .ec-head-actions{
        width:100%;
        justify-content:flex-start;
        flex-wrap:wrap;
    }

    .calendar-module .ec-head-actions .ec-head-tools--calendar,
    .calendar-module.ec-history-active .ec-head-actions .ec-head-tools--history{
        flex:1 1 auto;
    }
}

@media(max-width:760px){
    .calendar-module .ec-head-actions{
        align-items:stretch;
    }

    .calendar-module .ec-head-actions .ec-head-tools--calendar,
    .calendar-module.ec-history-active .ec-head-actions .ec-head-tools--history{
        flex:1 1 100%;
    }

    .calendar-module .ec-workspace-tabs--head{
        width:100%;
    }

    .calendar-module .ec-workspace-tabs--head .ec-workspace-tab{
        flex:1 1 0;
        justify-content:center;
    }
}

/* END IRCC EVENT CALENDAR — HEADER TAB POSITION V3F */


/* =========================================================
   IRCC EVENT CALENDAR — RESPONSIVE EVENT PANEL FLOW

   Consolidated from historical V3G/V3H height patches.
   Final panel height is controlled by the later V3J grid layout; this
   block only defines the stable internal panel/list behavior.
   ========================================================= */

.calendar-module .ec-panel-results,
.calendar-module .ec-panel-concall,
.calendar-module .ec-panel-events,
.calendar-module .ec-tall-panel{
    overflow:hidden !important;
}

.calendar-module .ec-panel-results .ec-panel-head,
.calendar-module .ec-panel-concall .ec-panel-head,
.calendar-module .ec-panel-events .ec-panel-head{
    flex:0 0 auto;
}

.calendar-module .ec-panel-results .ec-scroll-list,
.calendar-module .ec-panel-concall .ec-scroll-list,
.calendar-module .ec-panel-events .ec-scroll-list{
    flex:1 1 0 !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
}

.calendar-module .ec-panel-results .ec-column-empty,
.calendar-module .ec-panel-concall .ec-column-empty,
.calendar-module .ec-panel-events .ec-column-empty{
    flex:1 1 auto !important;
    min-height:0 !important;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:30px 20px 32px;
}

/* END IRCC EVENT CALENDAR — RESPONSIVE EVENT PANEL FLOW */


/* =========================================================
   IRCC EVENT CALENDAR — PERIOD FILTER POSITION V3I

   Remove the visible custom-range summary card ("Start: ... / Now click
   the end date...") and use that same left-side row for:
       Upcoming 30d | Today | Past 30d

   The range state nodes remain in the DOM, hidden, because the existing
   Calendar JavaScript updates those IDs while selecting a custom range.
   ========================================================= */

.calendar-module .ec-period-filter-row{
    justify-content:flex-start !important;
    align-items:center;
    gap:0;
    overflow:visible;
}

.calendar-module .ec-period-filter-row .ec-time-strip{
    margin-left:0 !important;
    margin-right:auto;
    align-self:auto;
}

.calendar-module .ec-range-summary--state-only{
    display:none !important;
}

/* Do not let older responsive rules move this strip back to the right. */
@media(max-width:950px){
    .calendar-module .ec-period-filter-row .ec-time-strip{
        margin-left:0 !important;
        margin-right:auto;
        align-self:auto;
    }
}

/* =========================================================
   CANONICAL RESPONSIVE PROFILE — (max-width:720px)
   Safely consolidated equivalent breakpoint groups.
   ========================================================= */
@media (max-width:720px){
  /* Component group 1 */
    .ec-day-summary{
        align-items:stretch;

        flex-direction:column;
    }


    .ec-day-summary > div:first-child{
        min-width:0;
    }


    .ec-day-stats{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

  /* Component group 2 */
    .ec-layout{
        grid-template-columns:1fr;

        grid-template-areas:
            "calendar"
            "extra"
            "results"
            "concall"
            "events";
    }

    .ec-panel-calendar{
        aspect-ratio:auto;

        min-height:410px;
    }

    .ec-calendar-promo{
        height:auto;
        min-height:165px;

        display:flex;
        flex-direction:column;

        padding:15px;
    }

    .ec-promo-copy h2{
        font-size:19px;
    }

    .ec-promo-copy h2 br{
        display:none;
    }

    .ec-promo-copy p{
        font-size:10.5px;
    }

    .ec-promo-footer{
        flex-wrap:wrap;

        gap:10px 14px;
    }

    .ec-promo-footer span{
        font-size:8.8px;
    }

    .ec-head-tools{
        flex-wrap:wrap;
    }

    .ec-search{
        width:100%;

        flex:1 1 100%;
    }

    .ec-control-row{
        justify-content:flex-start;
    }

    .ec-filter-strip{
        max-width:100%;

        overflow-x:auto;

        scrollbar-width:none;
    }

    .ec-filter-strip::-webkit-scrollbar{
        display:none;
    }

    .ec-modal-info,
    .ec-modal-docs{
        grid-template-columns:1fr;
    }

    .ec-info-item.full{
        grid-column:auto;
    }

  /* Component group 3 */
    .ec-time-strip{
        max-width:100%;
    }

  /* Component group 4 */
    .ec-panel-results,
    .ec-panel-concall,
    .ec-panel-events{
        height:auto;
        min-height:360px;
        max-height:none;
    }

  /* Component group 5 */
    .ec-range-copy small{
        white-space:normal;
    }

    .ec-time-strip{
        width:100%;
        justify-content:space-between;
    }

    .ec-time-strip .ec-filter-btn{
        flex:1;
        padding:0 8px;
    }

  /* Component group 6 */
  .ec-participant-card{grid-template-columns:25px minmax(0,1fr) 29px;}
  .ec-participant-field{grid-column:2/3;}.ec-participant-remove{grid-column:3/4;grid-row:1/3;height:100%;}.ec-participant-number{grid-row:1/3;height:100%;}

  /* Component group 7 */
    .calendar-module .ec-participant-card{grid-template-columns:minmax(0,1fr) 32px;}
    .calendar-module .ec-participant-field{grid-column:1/2;}
    .calendar-module .ec-participant-remove{grid-column:2/3;grid-row:1/3;height:100%;min-height:36px;}

  /* Component group 8 */
    .calendar-module .ec-period-filter-row{
        display:block;
    }

    .calendar-module .ec-period-filter-row .ec-time-strip{
        width:100%;
        max-width:100%;
    }

}


/* END IRCC EVENT CALENDAR — PERIOD FILTER POSITION V3I */


/* =========================================================
   IRCC EVENT CALENDAR — PERIOD FILTER ABOVE CALENDAR V3J

   Correct V3I placement:
   Upcoming 30d | Today | Past 30d belongs directly ABOVE the
   calendar in the LEFT grid column, not in a full-width row.

   Desktop grid becomes:
       period  | results | concall | events
       calendar| results | concall | events
       promo   | results | concall | events

   This also preserves V3H: the three right panels span the full
   responsive grid and still end exactly with the promo card.
   ========================================================= */

.calendar-module .ec-layout{
    grid-template-rows:
        auto
        auto
        152px;

    grid-template-areas:
        "period   results concall events"
        "calendar results concall events"
        "extra    results concall events";
}

.calendar-module .ec-calendar-period-tools{
    grid-area:period;

    min-width:0;

    display:flex;
    align-items:center;
    justify-content:flex-start;

    padding:0;
    margin:0;
}

.calendar-module .ec-calendar-period-tools .ec-time-strip{
    width:100%;
    max-width:none;

    margin:0 !important;

    justify-content:stretch;
}

/* Make the three controls fill the same width as the calendar panel. */
.calendar-module .ec-calendar-period-tools .ec-filter-btn{
    flex:1 1 0;
    justify-content:center;
}

/* The old V3I full-width positioning row no longer exists. */
.calendar-module .ec-period-filter-row{
    display:none !important;
}

/*
 * V3H used 100% of the spanning grid area. Since Results / Concall / Events
 * now span period + calendar + promo, they remain screen-responsive and
 * their bottom edge still matches the promo card.
 */
.calendar-module .ec-panel-results,
.calendar-module .ec-panel-concall,
.calendar-module .ec-panel-events,
.calendar-module .ec-tall-panel{
    height:100% !important;
    min-height:100% !important;
    max-height:100% !important;
    align-self:stretch !important;
}

/* Tablet/mobile layouts return to the normal stacked flow. */
@media(max-width:1250px){
    .calendar-module .ec-layout{
        grid-template-areas:
            "period   results concall events"
            "calendar results concall events"
            "extra    results concall events";
    }
}

@media(max-width:950px){
    .calendar-module .ec-layout{
        grid-template-areas:
            "period"
            "calendar"
            "results"
            "concall"
            "events"
            "extra";

        grid-template-rows:auto;
    }

    .calendar-module .ec-calendar-period-tools{
        width:100%;
    }

    .calendar-module .ec-panel-results,
    .calendar-module .ec-panel-concall,
    .calendar-module .ec-panel-events,
    .calendar-module .ec-tall-panel{
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
    }
}

/* END IRCC EVENT CALENDAR — PERIOD FILTER ABOVE CALENDAR V3J */
