.cplan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.cplan-grid .cplan-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 5px 22px #10243a0a;transition:transform .2s,background-color .2s}.cplan-card .cplan-body{display:flex;flex-direction:column;flex:1;padding:24px;gap:16px;overflow-wrap:anywhere}.cplan-card .cplan-badges{display:flex;flex-wrap:wrap;gap:6px}.cplan-card .cplan-badges:empty{display:none}.cplan-card .cplan-badge{display:inline-block;padding:4px 10px;background:#eaf2f7;color:#245674;border-radius:99px;font-size:12px;font-weight:600}.cplan-card .cplan-title{font-size:21px;line-height:1.35;color:#16334b;margin:0}.cplan-card .cplan-subtitle{font-size:16px;font-weight:600;color:#3e596e}.cplan-card .cplan-description{font-size:14px;color:#475569;white-space:normal}.cplan-card .cplan-details{margin:0;display:flex;flex-direction:column;flex-wrap:wrap;align-items:stretch;row-gap:var(--cplan-fields-row-gap,9px);column-gap:var(--cplan-fields-column-gap,16px);color:#475569;font-size:14px;min-width:0}.cplan-card .cplan-details:empty{display:none}.cplan-card .cplan-label{font-weight:600;color:#243f53}.cplan-card .cplan-field{box-sizing:border-box;flex:0 1 auto;min-width:min(100%,var(--cplan-field-min,0px));max-width:100%;overflow-wrap:anywhere}.cplan-card .cplan-details .cplan-label{display:var(--cplan-detail-display,block);margin:0;margin-bottom:var(--cplan-label-bottom,var(--cplan-label-gap,2px));margin-inline-end:var(--cplan-label-right,0px);padding:0}.cplan-card .cplan-details dd{display:var(--cplan-detail-display,block);margin:0;padding:0;white-space:normal}.cplan-card .cplan-action{margin-top:auto;padding-top:6px}.cplan-card .cplan-button{display:inline-block;padding:10px 18px;background:#165e7c;color:#fff;border-radius:8px;text-decoration:none;transition:background-color .2s,color .2s}.cplan-card .cplan-button:hover{background:#11465c;color:#fff}.cplan-card .cplan-button:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}.cplan-card .cplan-image{display:block;width:100%;height:210px;object-fit:cover}.cplan-card .cplan-sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1024px){.cplan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.cplan-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.cplan-grid .cplan-card{transition:none;transform:none!important}}
.cplan-card .cplan-action{display:flex;flex-wrap:wrap;gap:10px}.cplan-card button.cplan-button{font:inherit;line-height:1.4;border:0;cursor:pointer;text-align:center}html.cplan-calendar-open{overflow:hidden}.cplan-calendar-modal{box-sizing:border-box;width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:20px;background:#fff;color:#16334b;box-shadow:0 24px 90px #0005;text-align:left;overflow:auto;font:16px/1.5 system-ui,sans-serif}.cplan-calendar-modal::backdrop{background:rgba(12,24,38,.65)}.cplan-calendar-panel{position:relative;padding:32px}.cplan-calendar-modal h2{font:700 24px/1.25 system-ui,sans-serif;letter-spacing:normal;color:#16334b;margin:0 28px 18px 0}.cplan-calendar-modal #cplan-calendar-event{margin:0 0 6px;font-weight:600;overflow-wrap:anywhere}.cplan-calendar-modal #cplan-calendar-when{font-size:13px;color:#526779;margin:0 0 22px}.cplan-calendar-modal .cplan-calendar-close{position:absolute;right:12px;top:10px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#3f596b;font:28px/1 system-ui,sans-serif;cursor:pointer}.cplan-calendar-modal .cplan-calendar-close:hover{background:#edf4f7}.cplan-calendar-modal .cplan-calendar-choice{box-sizing:border-box;display:block;padding:16px;margin:12px 0;border:1px solid #dce6ed;border-radius:12px;color:#165e7c;background:#f6f9fb;text-decoration:none;font-weight:650;overflow-wrap:anywhere;cursor:pointer}.cplan-calendar-modal .cplan-calendar-choice:hover{background:#eaf2f7;border-color:#9ebdce}.cplan-calendar-choice span{display:block;font-size:13px;font-weight:400;color:#526779;margin-top:4px}.cplan-calendar-modal .cplan-calendar-note{font-size:12px;color:#64748b;margin:20px 0 0}.cplan-calendar-modal :focus-visible{outline:3px solid #e99917;outline-offset:3px}@media(max-width:480px){.cplan-calendar-panel{padding:24px}.cplan-calendar-modal h2{font-size:22px}.cplan-card .cplan-action>*{flex:1 1 auto}}
/* Academic model: independent of free-layout CSS, with shared event/board tracks. */
.cplan-grid-academic{align-items:start}.cplan-grid-academic .cplan-action{margin-top:0}.cplan-academic{container-type:inline-size;container-name:cplan-academic;width:100%;min-width:0}.cplan-card .cplan-academic-details{--cplan-academic-cols:3;display:grid;gap:var(--cplan-academic-section-gap,16px);font-size:14px;color:#475569;min-width:0;text-align:left}.cplan-card .cplan-academic-section{margin:0;padding:0;min-width:0}.cplan-card .cplan-orientation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cplan-academic-column-gap,16px)}.cplan-card .cplan-three-grid{display:grid;grid-template-columns:repeat(var(--cplan-academic-cols),minmax(0,1fr));column-gap:var(--cplan-academic-column-gap,16px);row-gap:var(--cplan-academic-row-gap,12px);margin:0;padding:0;min-width:0;list-style:none}.cplan-card .cplan-academic-cell{position:relative;min-width:0;margin:0;padding:0;overflow-wrap:anywhere;list-style:none}.cplan-card .cplan-academic .cplan-label{display:block;font-size:inherit;line-height:inherit;margin:0 0 var(--cplan-academic-label-gap,6px);padding:0;font-weight:600}.cplan-card .cplan-academic dd{display:block;margin:0;padding:0;white-space:normal}.cplan-card .cplan-academic-dividers .cplan-academic-section+.cplan-academic-section{border-top:1px solid var(--cplan-academic-divider,#e2e8f0);padding-top:var(--cplan-academic-section-gap,16px)}.cplan-card .cplan-academic-dividers .cplan-academic-cell::before{content:"";display:none;position:absolute;top:0;bottom:0;inset-inline-start:calc(var(--cplan-academic-column-gap,16px) / -2);border-inline-start:1px solid var(--cplan-academic-divider,#e2e8f0)}.cplan-card .cplan-academic-dividers .cplan-orientation-grid>:nth-child(2)::before,.cplan-card .cplan-academic-dividers .cplan-three-grid>:not(:nth-child(3n + 1))::before{display:block}.cplan-card .cplan-academic-empty::before{display:none!important}
@container cplan-academic (max-width:391px){.cplan-card .cplan-academic-details{--cplan-academic-cols:2}.cplan-card .cplan-academic-dividers .cplan-three-grid>:nth-child(n)::before{display:none}.cplan-card .cplan-academic-dividers .cplan-three-grid>:not(:nth-child(2n + 1))::before{display:block}}
@container cplan-academic (max-width:247px){.cplan-card .cplan-academic-details{--cplan-academic-cols:1}.cplan-card .cplan-academic-dividers .cplan-three-grid>:nth-child(n)::before{display:none}}
@supports not (container-type:inline-size){@media(max-width:1024px){.cplan-card .cplan-academic-details{--cplan-academic-cols:2}.cplan-card .cplan-academic-dividers .cplan-three-grid>:nth-child(n)::before{display:none}.cplan-card .cplan-academic-dividers .cplan-three-grid>:not(:nth-child(2n + 1))::before{display:block}}@media(max-width:600px){.cplan-card .cplan-academic-details{--cplan-academic-cols:1}.cplan-card .cplan-academic-dividers .cplan-three-grid>:nth-child(n)::before{display:none}}}

/* Shared actions and period selector. */
.cplan-card .cplan-action{justify-content:center;align-items:stretch;flex-wrap:nowrap;gap:10px}
.cplan-card .cplan-button{box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:0 1 220px;min-width:0;max-width:calc((100% - 10px)/2);font:inherit;line-height:1.4;text-align:center;white-space:normal;overflow-wrap:anywhere;border:0;cursor:pointer}
.cplan-card .cplan-action .cplan-button:only-child{max-width:calc((100% - 10px)/2)}
/* Consultation toolbar: panel includes controls and result summary. */
.cplan-consultation [hidden]{display:none!important}
.cplan-consultation .cplan-query-box{box-sizing:border-box;padding:18px 20px 12px;margin:0 0 12px;border:1px solid #dde6ed;border-radius:14px;background:#f3f7fa}
.cplan-consultation .cplan-toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px;align-items:stretch;margin:0;padding:0;border:0;background:transparent}
.cplan-consultation .cplan-toolbar .cplan-filter{display:grid;grid-template-rows:1fr auto;align-self:stretch;gap:7px;min-width:0;margin:0;padding:0;color:#243f53;font-family:inherit;font-size:13px;font-weight:600;line-height:1.4}
.cplan-consultation .cplan-filter>span{display:block;margin:0;padding:0;font-size:13px;font-weight:600;line-height:1.4}
.cplan-consultation .cplan-filter>select{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;height:44px;min-height:44px;margin:0;border:1px solid #b9cbd7;border-radius:8px;padding:10px 28px 10px 10px;background:#fff;color:#16334b;font:inherit;font-size:14px;line-height:1.4;text-overflow:ellipsis;vertical-align:middle}
.cplan-consultation .cplan-query-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 0;padding:0;color:#526779;font-size:14px;line-height:1.4}
.cplan-consultation .cplan-query-summary button{font:inherit;background:transparent;color:#165e7c;border:0;text-decoration:underline;padding:6px 0;margin:0;cursor:pointer}
.cplan-consultation>.cplan-grid{margin-top:0}
.cplan-toolbar select:focus-visible,.cplan-query-summary button:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}

.cplan-grid.cplan-height-natural{align-items:start;grid-auto-rows:auto}
.cplan-grid.cplan-height-row{align-items:stretch;grid-auto-rows:auto}
.cplan-grid.cplan-height-all{align-items:stretch;grid-auto-rows:1fr}
.cplan-grid.cplan-height-row .cplan-action,.cplan-grid.cplan-height-all .cplan-action{margin-top:auto}
.cplan-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:20px}
.cplan-pagination button{font:inherit;padding:10px 16px;border:1px solid #b9cbd7;border-radius:8px;background:#f3f7fa;color:#16334b;cursor:pointer}
.cplan-pagination button:disabled{opacity:.45;cursor:default}
.cplan-pagination button:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}

/* Apply the same alignment in the editor's live CSS and saved markup. */
.cplan-grid.cplan-height-natural{--cplan-action-margin:0px}
.cplan-grid.cplan-height-row,.cplan-grid.cplan-height-all{--cplan-action-margin:auto}
.cplan-grid .cplan-card .cplan-body{flex:1 1 auto;min-height:0}
.cplan-grid .cplan-card .cplan-action{margin-top:var(--cplan-action-margin,auto);flex-shrink:0}
.cplan-consultation .cplan-query-box .cplan-filter,
.cplan-consultation .cplan-query-box .cplan-filter>span,
.cplan-consultation .cplan-query-box .cplan-filter>select,
.cplan-consultation .cplan-query-box .cplan-query-summary,
.cplan-consultation .cplan-query-box .cplan-query-summary>span,
.cplan-consultation .cplan-query-box .cplan-query-summary button{color:var(--cplan-consult-text,#243f53)}

/* Fixed equal tracks: the number of actions never changes an action's width. */
.cplan-grid .cplan-card .cplan-body>.cplan-action{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px;box-sizing:border-box;width:100%;max-width:450px;align-self:center;align-items:stretch;justify-content:normal}
.cplan-grid .cplan-card .cplan-action>.cplan-button{box-sizing:border-box;width:100%;min-width:0;max-width:none;margin-inline:0;flex:none;justify-self:stretch}
.cplan-grid .cplan-card .cplan-action>.cplan-button:only-child{grid-column:1 / -1;width:calc((100% - 10px) / 2);min-width:0;max-width:none;justify-self:center}
