/* Admission Calendar — consolidated Colorfield design system */
:root {
 color-scheme:light;
 --canvas:#F8F6F0;--surface:#FFFEFB;--surface-soft:#F1EEE6;--surface-raised:#FFFFFF;
 --ink:#292F2A;--ink-strong:#202720;--muted:#626D64;--muted-soft:#606B62;
 --line:#E6E1D7;--line-strong:#D5CEC1;--link:#355F87;--focus:#355F87;
 --page-accent:#9C5234;--page-tint:#FFF0E7;--page-border:#EBC9B8;
 --success:#356B4A;--success-bg:#EAF4ED;--caution:#805915;--caution-bg:#FFF5DA;
 --info:#356B8A;--info-bg:#EAF3F8;--danger:#994B43;--danger-bg:#FBEDEA;
 --event-open:#477957;--event-open-bg:#EAF4ED;--event-deadline:#A34D42;--event-deadline-bg:#FBEDEA;
 --event-admit:#42638C;--event-admit-bg:#EAF1FB;--event-exam:#6C598F;--event-exam-bg:#F1ECF8;
 --event-result:#765718;--event-result-bg:#F8F1D9;
 --shadow-soft:0 12px 32px rgba(42,47,40,.055);--shadow-pop:0 18px 50px rgba(31,38,32,.16);
 --content-width:1400px;--header-height:76px;--radius-lg:17px;--radius-md:12px;--radius-sm:9px;
 font-family:"Noto Sans Bengali","Hind Siliguri","Nirmala UI",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 font-synthesis:none;text-rendering:optimizeLegibility;
}
:root[data-theme="dark"] {
 color-scheme:dark;
 --canvas:#181E1C;--surface:#222A26;--surface-soft:#2B342F;--surface-raised:#303B35;
 --ink:#E8EEE8;--ink-strong:#F5F7F1;--muted:#B8C2B9;--muted-soft:#9BA79D;
 --line:#39443D;--line-strong:#526057;--link:#A8C6E5;--focus:#B3D0EF;
 --page-accent:#F0AD8C;--page-tint:#3B2D28;--page-border:#68483A;
 --success:#A7D5B5;--success-bg:#293D30;--caution:#E4C27A;--caution-bg:#443A27;
 --info:#A8CBE4;--info-bg:#293A48;--danger:#E4A69C;--danger-bg:#482F2C;
 --event-open:#A7D5B5;--event-open-bg:#293D30;--event-deadline:#E4A69C;--event-deadline-bg:#482F2C;
 --event-admit:#A8C3E5;--event-admit-bg:#2A3545;--event-exam:#C5B4E4;--event-exam-bg:#342E40;
 --event-result:#D6BB77;--event-result-bg:#3B3526;
 --shadow-soft:0 12px 32px rgba(0,0,0,.16);--shadow-pop:0 18px 50px rgba(0,0,0,.42);
}
:root[data-page="overview"]{--page-accent:#9C5234;--page-tint:#FFF0E7;--page-border:#EBC9B8}
:root[data-page="calendar"]{--page-accent:#42638C;--page-tint:#EAF1FB;--page-border:#C9D8EB}
:root[data-page="universities"]{--page-accent:#486B53;--page-tint:#EAF3EC;--page-border:#C9DCCB}
:root[data-page="compare"]{--page-accent:#6C598F;--page-tint:#F1ECF8;--page-border:#D9CDEB}
:root[data-page="my-admission"]{--page-accent:#944A3D;--page-tint:#FAEEE9;--page-border:#E9C9C0}
:root[data-theme="dark"][data-page="overview"]{--page-accent:#F0AD8C;--page-tint:#3B2D28;--page-border:#68483A}
:root[data-theme="dark"][data-page="calendar"]{--page-accent:#A8C3E5;--page-tint:#2A3545;--page-border:#465B74}
:root[data-theme="dark"][data-page="universities"]{--page-accent:#A7C7AA;--page-tint:#2B382F;--page-border:#4B6550}
:root[data-theme="dark"][data-page="compare"]{--page-accent:#C5B4E4;--page-tint:#342E40;--page-border:#625273}
:root[data-theme="dark"][data-page="my-admission"]{--page-accent:#E3A79B;--page-tint:#3A2D2B;--page-border:#69443F}
*{box-sizing:border-box}
html{min-width:320px;scroll-behavior:smooth;background:var(--canvas)}
body{min-width:320px;min-height:100vh;margin:0;background:var(--canvas);color:var(--ink);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
body,button,input,select,textarea{font-family:inherit}
button,input,select,textarea{font-size:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{color:inherit;cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
::selection{color:var(--ink-strong);background:var(--page-border)}
h1,h2,h3,h4,h5,p{margin-top:0}
h1,h2,h3,h4,h5{color:var(--ink-strong);line-height:1.35;letter-spacing:-.025em}
h1{margin-bottom:12px;font-size:clamp(32px,3.3vw,40px);font-weight:740;line-height:1.25}
h1 span{color:var(--page-accent)}
h2{margin-bottom:8px;font-size:24px;font-weight:700}
h3{margin-bottom:6px;font-size:19px;font-weight:680}
h4{margin-bottom:6px;font-size:17px;font-weight:680}
p{line-height:1.72}
small{font-size:15px}
.skip-link{position:fixed;z-index:1000;top:8px;left:8px;padding:10px 14px;transform:translateY(-150%);border-radius:9px;background:var(--surface-raised);color:var(--ink-strong);box-shadow:var(--shadow-pop)}
.skip-link:focus{transform:translateY(0)}
.app-shell{min-height:100vh}
.site-header{position:sticky;z-index:50;top:0;width:100%;min-height:var(--header-height);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(18px)}
.site-header-inner{display:flex;align-items:center;gap:30px;width:min(100%,var(--content-width));min-height:var(--header-height);margin:0 auto;padding:10px clamp(20px,3vw,44px)}
.brand{display:flex;flex:0 0 auto;align-items:center;gap:11px;color:var(--ink-strong);text-decoration:none!important}
.brand-mark{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:13px;background:#F3E4D9;color:#89533A}
:root[data-theme="dark"] .brand-mark{background:#49362E;color:#F0AD8C}
.brand-mark svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.brand-copy{display:flex;flex-direction:column;gap:1px}
.brand-copy strong{color:var(--ink-strong);font-size:16px;font-weight:760;letter-spacing:-.045em;white-space:nowrap}
.brand-copy strong span{color:var(--page-accent)}
.brand-copy small{color:var(--muted);font-size:15px;line-height:1.35}
.primary-nav{display:flex;flex:1 1 auto;align-items:center;justify-content:center;gap:4px;min-width:0}
.nav-link{position:relative;display:flex;min-height:46px;align-items:center;justify-content:center;gap:8px;padding:0 13px;border-radius:10px;color:var(--muted);font-size:15px;font-weight:570;white-space:nowrap;transition:background .15s,color .15s}
.nav-link svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.nav-link:hover{background:var(--surface-soft);color:var(--ink-strong);text-decoration:none}
.nav-link.is-active{background:var(--page-tint);color:var(--page-accent);font-weight:700}
.nav-link.is-active:after{position:absolute;right:13px;bottom:3px;left:13px;height:2px;border-radius:4px;background:var(--page-accent);content:""}
.header-actions{display:flex;flex:0 0 auto;align-items:center;gap:10px}
.header-privacy-note{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:15px;white-space:nowrap}
.header-privacy-note span{color:var(--success);font-size:18px}
.cycle-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:15px;white-space:nowrap}
.status-dot{width:7px;height:7px;border-radius:50%;background:#8A9A8B;box-shadow:0 0 0 3px var(--surface-soft)}
.icon-button{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink-strong)}
.icon-button:hover{background:var(--surface-soft)}
.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.main-column{min-width:0}
.route-title-sync,.topbar{display:none}
.main-content{width:min(100%,var(--content-width));min-height:calc(100vh - var(--header-height));margin:0 auto;padding:38px clamp(20px,3vw,44px) 60px}
.view-panel{min-width:0}
.view-panel.is-visible{animation:page-enter .18s ease-out both}
@keyframes page-enter{from{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:none}}
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:3px 0 28px}
.page-intro>div:first-child{max-width:850px}
.eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:var(--muted-soft);font-size:15px;font-weight:730;letter-spacing:.09em}
.eyebrow-line{width:23px;height:2px;border-radius:2px;background:var(--page-accent)}
.page-description{max-width:740px;margin:0;color:var(--muted);font-size:17px;line-height:1.75}
.intro-date{display:flex;align-items:center;gap:12px;padding:11px 15px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-tint)}
.intro-date strong,.intro-date small{display:block}
.intro-date strong{color:var(--ink-strong);font-size:15px}
.intro-date small{color:var(--muted);font-size:15px}
.date-mark{color:var(--page-accent);font-size:25px}
.notice-banner{display:flex;align-items:flex-start;gap:13px;margin:0 0 27px;padding:16px 18px;border:1px solid var(--info-bg);border-left:3px solid var(--info);border-radius:12px;background:var(--info-bg);color:var(--ink)}
.notice-symbol{display:grid;width:27px;height:27px;flex:0 0 27px;place-items:center;border-radius:50%;background:var(--surface);color:var(--info);font-weight:750}
.notice-banner strong{display:block;margin:1px 0 3px;color:var(--ink-strong);font-size:16px}
.notice-banner p{margin:0;color:var(--muted);font-size:15px;line-height:1.7}
.notice-tag{margin-left:auto;color:var(--muted-soft);font-size:15px;white-space:nowrap;letter-spacing:.06em}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px}
.section-heading h2{margin-bottom:4px;font-size:23px}
.section-heading p{margin:0;color:var(--muted);font-size:15px}
.section-caption{color:var(--muted-soft);font-size:15px;letter-spacing:.09em}
.view-panel[data-view="overview"]>.section-heading,.view-panel[data-view="overview"]>.stats-grid{display:none}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;margin:0 0 18px}
.content-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.upcoming-card,.progress-card{min-height:285px;padding:22px 23px}
.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.card-heading h2{margin:0 0 4px;font-size:21px}
.card-heading p{margin:0;color:var(--muted);font-size:15px}
.text-link,.subtle-action{color:var(--page-accent);font-size:15px;font-weight:680;white-space:nowrap}
.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:35px 8px 18px}
.empty-state>strong,.progress-empty strong{color:var(--ink-strong);font-size:17px;font-weight:680}
.empty-state>p,.progress-empty p{max-width:520px;margin:0;color:var(--muted);font-size:15px;line-height:1.75}
.empty-illustration{position:relative;display:grid;width:50px;height:48px;place-items:center;margin-bottom:3px;border:1px solid var(--page-border);border-radius:12px;background:var(--page-tint);color:var(--page-accent)}
.calendar-illustration{overflow:hidden}
.calendar-top{position:absolute;top:0;left:0;width:100%;height:10px;background:var(--page-accent);opacity:.2}
.calendar-grid{display:grid;width:26px;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:8px}
.calendar-grid i{width:5px;height:5px;border-radius:2px;background:var(--page-accent);opacity:.55}
.calendar-illustration b{position:absolute;right:5px;bottom:2px;font-size:15px}
.compact-empty{padding-top:30px}
.progress-empty{display:flex;align-items:center;gap:17px;padding:40px 5px 22px}
.progress-empty p{margin-top:4px}
.progress-ring{display:grid;width:68px;height:68px;flex:0 0 68px;place-items:center;border:1px solid var(--page-border);border-radius:50%;background:var(--page-tint);color:var(--page-accent)}
.progress-ring>span{font-size:26px;line-height:1}
.progress-ring small{display:none}
.subtle-action{display:inline-flex;gap:8px;margin-top:4px}
.quick-access-card{padding:21px 23px 23px}
.quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.quick-link{display:flex;min-width:0;min-height:84px;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);transition:border-color .15s,background .15s,transform .15s}
.quick-link:hover{border-color:var(--page-border);background:var(--page-tint);text-decoration:none;transform:translateY(-1px)}
.quick-link-icon{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border-radius:12px;background:var(--page-tint);color:var(--page-accent);font-size:21px}
.quick-link strong,.quick-link small{display:block}
.quick-link strong{color:var(--ink-strong);font-size:16px}
.quick-link small{margin-top:3px;color:var(--muted);font-size:15px;line-height:1.45}
.quick-link>b{margin-left:auto;color:var(--page-accent);font-size:18px}
.app-footer{display:flex;justify-content:space-between;gap:16px;padding:26px 2px 0;color:var(--muted-soft);font-size:15px}
.app-footer span{font-size:15px}

/* Controls and shared states */
.primary-action,.text-button,.detail-link,.event-open-button,.calendar-arrow,.calendar-today,.calendar-view-switch button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border-radius:10px;font-size:15px;font-weight:650;text-decoration:none}
.primary-action{padding:0 17px;border:1px solid var(--page-accent);background:var(--page-accent);color:#fff}
.primary-action:hover{filter:brightness(.96)}
:root[data-theme="dark"] .primary-action{color:#202720}
.text-button{padding:7px 11px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.text-button:hover{border-color:var(--page-border);background:var(--page-tint);text-decoration:none}
.text-button.danger-action{color:var(--danger)}
.detail-link,.event-open-button{min-height:34px;padding:5px 9px;border:0;background:transparent;color:var(--page-accent)}
.detail-link:hover,.event-open-button:hover{background:var(--page-tint);text-decoration:none}
input,select,textarea{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink-strong);font-size:15px;line-height:1.5}
textarea{min-height:94px;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--muted-soft);opacity:1}
input:hover,select:hover,textarea:hover{border-color:var(--muted-soft)}
input:focus,select:focus,textarea:focus{border-color:var(--focus);outline:2px solid color-mix(in srgb,var(--focus) 18%,transparent);outline-offset:1px}
.data-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:145px;padding:26px 18px;text-align:center}
.data-empty-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:13px;background:var(--page-tint);color:var(--page-accent);font-size:19px}
.data-empty strong{color:var(--ink-strong);font-size:16px}
.data-empty p{max-width:520px;margin:0;color:var(--muted);font-size:15px}
.data-empty.is-compact{min-height:110px;padding:18px}
.calendar-loading{padding:27px 18px;color:var(--muted);text-align:center;font-size:15px}
.local-data-note,.personal-storage-note,.personal-storage-warning,.directory-source-note,.calendar-source-hint{color:var(--muted);font-size:15px;line-height:1.65}
.personal-storage-warning{margin-bottom:17px;padding:13px 15px;border:1px solid var(--caution);border-radius:11px;background:var(--caution-bg);color:var(--caution)}

/* Calendar workspace */
.calendar-workspace{overflow:hidden;padding:21px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}
.calendar-period-controls{display:flex;align-items:center;gap:7px;min-width:0}
.calendar-period-controls h2{margin:0 0 0 9px;color:var(--ink-strong);font-size:21px}
.calendar-arrow,.calendar-today{min-width:39px;min-height:38px;padding:0 11px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.calendar-arrow{font-size:22px;line-height:1}
.calendar-today{color:var(--page-accent)}
.calendar-arrow:hover,.calendar-today:hover{border-color:var(--page-border);background:var(--page-tint)}
.calendar-view-switch{display:flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.calendar-view-switch button{min-width:58px;min-height:34px;padding:4px 11px;border:0;background:transparent;color:var(--muted)}
.calendar-view-switch button.is-active{background:var(--surface);color:var(--page-accent);box-shadow:0 1px 4px rgba(25,35,27,.08)}
.calendar-filters{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(130px,1fr));gap:9px;margin:0 0 14px}
.filter-search,.directory-search{display:flex;min-width:0;align-items:center;gap:8px;min-height:44px;padding:0 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface)}
.filter-search>span,.directory-search>span{color:var(--muted-soft);font-size:19px}
.filter-search input,.directory-search input{min-height:40px;padding:7px 2px;border:0;outline:0;background:transparent}
.filter-search input:focus,.directory-search input:focus{outline:0}
.filter-select,.sort-select{display:flex;min-width:0;flex-direction:column;gap:4px;color:var(--muted);font-size:15px}
.filter-select select,.sort-select select{min-height:43px;padding:8px 28px 8px 10px;font-size:15px}
.calendar-results-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;color:var(--muted);font-size:15px}
.calendar-source-hint{display:inline-flex;align-items:center;gap:7px;font-size:15px}
.calendar-source-hint i{width:7px;height:7px;border-radius:50%;background:var(--success)}
.calendar-view-container{min-width:0}
.calendar-month-grid{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{background:var(--surface-soft)}
.calendar-weekday{padding:10px 5px;border-right:1px solid var(--line);color:var(--muted);font-size:15px;font-weight:650;text-align:center}
.calendar-weekday:last-child{border-right:0}
.calendar-day{min-width:0;min-height:104px;padding:7px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface)}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.is-outside{background:var(--surface-soft)}
.calendar-day.is-today{background:var(--page-tint)}
.calendar-day.is-selected{box-shadow:inset 0 0 0 2px var(--page-accent)}
.calendar-day-number{display:grid;width:28px;height:28px;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:15px}
.calendar-day.is-today .calendar-day-number{background:var(--page-accent);color:#fff;font-weight:750}
.calendar-day-events{display:flex;flex-direction:column;gap:4px;margin-top:3px}
.event-chip{display:flex;width:100%;min-width:0;align-items:center;gap:5px;padding:4px 5px;overflow:hidden;border:0;border-radius:6px;background:var(--event-bg,var(--surface-soft));color:var(--event-color,var(--ink));text-align:left}
.event-chip:hover{filter:brightness(.97)}
.event-chip-dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--event-color,var(--muted))}
.event-chip-title{overflow:hidden;color:var(--event-color,var(--ink));font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.event-chip-university{display:none}
.event-application_open{--event-color:var(--event-open);--event-bg:var(--event-open-bg)}
.event-application_deadline,.event-admit_card_deadline{--event-color:var(--event-deadline);--event-bg:var(--event-deadline-bg)}
.event-admit_card_open{--event-color:var(--event-admit);--event-bg:var(--event-admit-bg)}
.event-admission_test{--event-color:var(--event-exam);--event-bg:var(--event-exam-bg)}
.event-result_publication{--event-color:var(--event-result);--event-bg:var(--event-result-bg)}
.event-other{--event-color:var(--muted);--event-bg:var(--surface-soft)}
.more-events{padding:3px 4px;border:0;background:transparent;color:var(--page-accent);font-size:15px;text-align:left}
.week-view-grid{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));min-width:760px;gap:8px}
.calendar-view-container:has(.week-view-grid){overflow-x:auto}
.week-day-column{min-width:0;min-height:180px;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.week-day-column.is-today{border-color:var(--page-border);background:var(--page-tint)}
.week-day-heading{display:flex;align-items:baseline;gap:6px;padding-bottom:9px;border-bottom:1px solid var(--line);color:var(--muted)}
.week-day-heading strong{color:var(--ink-strong);font-size:18px}
.week-day-heading span{font-size:15px}
.week-day-events{display:flex;flex-direction:column;gap:6px;padding-top:9px}
.week-no-event{color:var(--muted-soft)}
.event-list-groups{display:grid;gap:23px}
.event-date-group>h3{display:flex;justify-content:space-between;gap:12px;margin:0 0 10px;font-size:17px}
.event-date-group>h3 span{color:var(--muted);font-size:15px;font-weight:500}
.event-list-card{display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px 3px;border-bottom:1px solid var(--line)}
.event-list-date{display:flex;flex-direction:column;color:var(--ink-strong)}
.event-list-date strong{font-size:16px}
.event-list-date small{color:var(--muted)}
.event-list-main h3{margin:6px 0 3px;font-size:17px}
.event-list-main p{margin:0;color:var(--muted);font-size:15px}
.event-list-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.event-type-tag{display:inline-flex;min-height:25px;align-items:center;padding:3px 8px;border-radius:7px;background:var(--event-tag-bg,var(--surface-soft));color:var(--event-tag-color,var(--muted));font-size:15px;font-weight:650}
.type-application_open{--event-tag-color:var(--event-open);--event-tag-bg:var(--event-open-bg)}
.type-application_deadline,.type-admit_card_deadline{--event-tag-color:var(--event-deadline);--event-tag-bg:var(--event-deadline-bg)}
.type-admit_card_open{--event-tag-color:var(--event-admit);--event-tag-bg:var(--event-admit-bg)}
.type-admission_test{--event-tag-color:var(--event-exam);--event-tag-bg:var(--event-exam-bg)}
.type-result_publication{--event-tag-color:var(--event-result);--event-tag-bg:var(--event-result-bg)}
.calendar-legend{display:flex;flex-wrap:wrap;gap:12px 19px;margin:14px 3px 0;color:var(--muted);font-size:15px}
.calendar-legend>span{display:inline-flex;align-items:center;gap:7px}
.calendar-legend i{width:8px;height:8px;border-radius:50%;background:var(--muted-soft)}
.legend-open{background:var(--event-open)!important}.legend-deadline{background:var(--event-deadline)!important}.legend-admit{background:var(--event-admit)!important}.legend-exam{background:var(--event-exam)!important}.legend-result{background:var(--event-result)!important}
.calendar-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);align-items:start;gap:17px;margin-top:23px}
.calendar-table-panel,.calendar-nb-panel{min-width:0;padding:21px}
.calendar-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:13px;margin-bottom:15px}
.calendar-panel-heading h2{margin:4px 0;font-size:21px}
.calendar-panel-heading p{margin:0;color:var(--muted);font-size:15px}
.panel-kicker{color:var(--muted-soft);font-size:15px;font-weight:730;letter-spacing:.08em}
.calendar-table-count{color:var(--muted);font-size:15px;white-space:nowrap}
.calendar-table-scroll,.compare-table-scroll{width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;overscroll-behavior-inline:contain}
.calendar-event-table,.compare-matrix{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface)}
.calendar-event-table{min-width:790px}
.calendar-event-table th,.calendar-event-table td,.compare-matrix th,.compare-matrix td{padding:12px 13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);font-size:15px;line-height:1.6;text-align:left;vertical-align:top}
.calendar-event-table th,.compare-matrix thead th{background:var(--surface-soft);color:var(--muted);font-weight:700;white-space:nowrap}
.calendar-event-table tr:last-child td,.compare-matrix tr:last-child th,.compare-matrix tr:last-child td{border-bottom:0}
.calendar-event-table th:last-child,.calendar-event-table td:last-child,.compare-matrix th:last-child,.compare-matrix td:last-child{border-right:0}
.calendar-event-table td strong{display:block;color:var(--ink-strong);font-size:15px}
.table-time,.table-event-type,.source-missing{display:block;margin-top:3px;color:var(--muted);font-size:15px}
.calendar-event-open{display:inline-flex;padding:0;border:0;background:transparent;color:var(--page-accent);font-size:15px;font-weight:680;text-align:left}
.calendar-event-open:hover{text-decoration:underline;text-underline-offset:3px}
.nb-heading{align-items:center}.nb-heading h2{margin-bottom:0}
.nb-mark{display:grid;width:43px;height:43px;flex:0 0 43px;place-items:center;border:1px solid var(--page-border);border-radius:12px;background:var(--page-tint);color:var(--page-accent);font-family:Georgia,serif;font-size:15px;font-style:italic;font-weight:700}
.calendar-nb-panel{--page-accent:#765718;--page-tint:#F8F1D9;--page-border:#E5D5A1}
:root[data-theme="dark"] .calendar-nb-panel{--page-accent:#D6BB77;--page-tint:#3B3526;--page-border:#655832}
.nb-intro{margin:0 0 15px;color:var(--muted);font-size:15px;line-height:1.7}
.shared-note-form{display:grid;gap:8px}.shared-note-form label{margin-top:3px;color:var(--ink-strong);font-size:15px;font-weight:650}.shared-note-form label span{color:var(--muted);font-weight:450}
.calendar-note-form textarea{min-height:96px}.note-form-status{min-height:24px;margin:4px 0 0;color:var(--muted);font-size:15px}
.calendar-note-form .primary-action{justify-self:start}
.calendar-note-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--page-border)}
.calendar-note-preview-heading h3{margin:0;font-size:16px}
.calendar-note-preview-list{display:grid;gap:8px;margin-top:10px}
.note-preview-item{padding:10px 11px;border:1px solid var(--page-border);border-radius:10px;background:var(--page-tint)}
.note-preview-item strong{display:block;color:var(--ink-strong);font-size:15px}
.note-preview-item p{margin:4px 0 0;color:var(--muted);font-size:15px}
.note-preview-meta{display:flex;align-items:center;gap:7px;color:var(--muted-soft);font-size:15px}
.note-preview-empty{margin:0;color:var(--muted);font-size:15px}

/* University directory: scan-friendly list rows */
.directory-workspace{padding:21px}
.directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}
.directory-toolbar h2{margin:0 0 4px;font-size:21px}.directory-toolbar p{margin:0;color:var(--muted);font-size:15px}
.directory-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(145px,1fr));gap:10px;margin-bottom:17px}
.university-results{min-width:0}.university-list{display:grid;gap:0;border-top:1px solid var(--line)}
.university-row{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(180px,auto);align-items:center;gap:16px;padding:17px 5px;border-bottom:1px solid var(--line)}
.university-row:hover{background:color-mix(in srgb,var(--page-tint) 42%,transparent)}
.university-monogram{display:grid;width:46px;height:46px;flex:0 0 46px;place-items:center;border-radius:14px;background:var(--page-tint);color:var(--page-accent);font-size:15px;font-weight:750}
.university-row-content{min-width:0}.university-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.university-title-wrap h3{margin:0 0 2px;font-size:18px}.university-title-wrap p{margin:0;color:var(--muted);font-size:15px}
.university-row-meta{display:flex;flex-wrap:wrap;gap:6px 13px;margin-top:6px;color:var(--muted-soft);font-size:15px}
.verification-date,.verification-sources{color:var(--muted-soft);font-size:15px}
.unit-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.unit-tags span{display:inline-flex;min-height:24px;align-items:center;padding:3px 8px;border-radius:7px;background:var(--surface-soft);color:var(--muted);font-size:15px}
.university-row-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px}
.university-row-actions .source-link{padding:6px 4px;font-size:15px;white-space:nowrap}
.personal-card-actions{display:flex;flex-wrap:wrap;gap:5px}
.personal-save-button,.personal-compare-button{min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:15px}
.personal-save-button.is-saved{border-color:var(--page-border);background:var(--page-tint);color:var(--page-accent)}
.personal-compare-button.is-selected{border-color:var(--page-border);color:var(--page-accent)}
.verification-badge{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:3px 8px;border-radius:7px;background:var(--surface-soft);color:var(--muted);font-size:15px;font-weight:650;white-space:nowrap}
.verification-badge i{width:6px;height:6px;border-radius:50%;background:currentColor}
.status-officially_confirmed{background:var(--success-bg);color:var(--success)}
.status-tentative,.status-awaiting_official_notice,.status-unknown{background:var(--caution-bg);color:var(--caution)}
.status-updated{background:var(--info-bg);color:var(--info)}.status-changed{background:var(--danger-bg);color:var(--danger)}
.verification-summary{display:flex;flex-wrap:wrap;align-items:center;gap:7px}

/* Compare matrix and personal workspace */
.personal-workspace{padding:21px;margin-bottom:17px}
.personal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}
.personal-toolbar h2{margin:0 0 4px;font-size:21px}.personal-toolbar p{margin:0;color:var(--muted);font-size:15px}
.compare-add-row{display:flex;align-items:flex-end;gap:10px;max-width:780px}
.compare-select{flex:1 1 400px}.compare-selected-list{margin:15px 0 18px}
.compare-selected-chips{display:flex;flex-wrap:wrap;gap:7px}
.compare-selected-chip{display:inline-flex;align-items:center;gap:9px;padding:6px 9px 6px 12px;border:1px solid var(--page-border);border-radius:999px;background:var(--page-tint);color:var(--ink-strong);font-size:15px}
.compare-selected-chip button{display:grid;width:23px;height:23px;place-items:center;padding:0;border:0;border-radius:50%;background:var(--surface);color:var(--muted);font-size:17px}
.compare-results{min-width:0;margin-top:17px}
.compare-matrix{min-width:760px}
.compare-matrix th:first-child{position:sticky;left:0;z-index:2;min-width:160px;background:var(--surface-soft)}
.compare-matrix thead th:not(:first-child){min-width:170px;background:var(--page-tint);color:var(--page-accent)}
.compare-matrix tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--page-tint) 25%,var(--surface))}
.compare-cycle-note{margin:12px 0 0;color:var(--muted);font-size:15px}
.personal-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 17px}
.personal-stat{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:13px 15px;border-bottom:2px solid var(--page-border);background:var(--page-tint)}
.personal-stat>span{color:var(--muted);font-size:15px}.personal-stat strong{grid-column:2;grid-row:1/span 2;color:var(--page-accent);font-size:25px}.personal-stat small{color:var(--muted);font-size:15px}
.personal-deadlines-list{display:grid;gap:0}
.personal-deadline-item{display:grid;grid-template-columns:115px minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line)}
.deadline-date{color:var(--page-accent);font-weight:700}.deadline-description{color:var(--muted);font-size:15px}
.personal-shortlist-grid{display:grid;gap:0}
.saved-university-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 4px;border-bottom:1px solid var(--line)}
.saved-university-main{display:flex;align-items:center;gap:12px;min-width:0}
.saved-university-main h3{margin:0 0 2px;font-size:17px}.saved-university-main p{margin:0;color:var(--muted);font-size:15px}
.progress-select{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:15px}.progress-select select{min-width:190px}
.saved-card-actions{display:flex;flex-wrap:wrap;grid-column:1/-1;gap:6px;padding-left:58px}
.personal-deadlines{margin-bottom:17px}.personal-deadlines .personal-toolbar{margin-bottom:12px}
.personal-section-icon{color:var(--page-accent);font-size:22px}
.personal-shortlist{margin-bottom:17px}
.admission-notes-workspace{--page-accent:#765718;--page-tint:#F8F1D9;--page-border:#E5D5A1;margin-top:18px;padding:21px;border:1px solid var(--page-border);border-radius:var(--radius-lg);background:var(--page-tint)}
:root[data-theme="dark"] .admission-notes-workspace{--page-accent:#D6BB77;--page-tint:#3B3526;--page-border:#655832}
.admission-notes-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:20px;align-items:start;margin-top:16px}
.admission-note-form{display:grid;gap:8px}.admission-note-form label{color:var(--ink-strong);font-size:15px;font-weight:650}
.admission-note-actions{display:flex;flex-wrap:wrap;gap:7px}.admission-note-list{display:grid;gap:0}
.admission-note-card{padding:14px 2px;border-bottom:1px solid var(--page-border)}
.admission-note-card:first-child{padding-top:2px}
.admission-note-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;color:var(--muted);font-size:15px}
.admission-note-card h3{margin:8px 0 4px;font-size:17px}.admission-note-card p{margin:5px 0;color:var(--ink);font-size:15px;line-height:1.75;overflow-wrap:anywhere}
.admission-note-source{margin:7px 0}.admission-note-card-actions{display:flex;gap:6px;margin-top:8px}
.compare-note-kind{display:inline-flex;align-items:center;padding:4px 8px;border-radius:7px;font-size:15px;font-weight:650}
.compare-note-kind.is-verify{background:var(--caution-bg);color:var(--caution)}
.compare-note-kind.is-important{background:var(--page-tint);color:var(--page-accent)}
.notes-management-link{color:var(--page-accent);font-size:15px;font-weight:650}
.note-preview-empty{padding:12px 0;color:var(--muted);font-size:15px}
.personal-storage-note{margin:10px 0}

/* Dialog, official details, and sources */
.record-dialog{width:min(900px,calc(100% - 28px));max-width:900px;max-height:min(88vh,900px);padding:0;overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop)}
.record-dialog::backdrop{background:rgba(20,29,23,.48);backdrop-filter:blur(3px)}
.record-dialog-content{padding:23px}
.record-dialog-header{position:sticky;z-index:2;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:-23px -23px 19px;padding:19px 23px 15px;border-bottom:1px solid var(--line);background:var(--surface)}
.record-dialog-header h2{margin:3px 0 0}
.dialog-close{display:grid;width:37px;height:37px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);font-size:21px}
.detail-kicker{color:var(--muted-soft);font-size:15px;font-weight:720;letter-spacing:.08em}
.university-detail-intro{display:grid;gap:12px;padding:0 0 18px;border-bottom:1px solid var(--line)}
.detail-official-links{display:flex;flex-wrap:wrap;gap:8px 15px}
.source-link{color:var(--link);font-size:15px;font-weight:620}.no-source-note{color:var(--muted);font-size:15px}
.detail-cycle{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.detail-cycle:first-child{border-top:0}
.detail-cycle.is-highlighted,.detail-unit.is-highlighted{padding-left:13px;border-left:3px solid var(--page-accent)}
.detail-section-heading,.detail-unit-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.detail-section-heading h3,.detail-unit-heading h4{margin:2px 0 7px}
.detail-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:13px 0}
.detail-data-block{padding:14px;border:1px solid var(--line);border-radius:11px}
.detail-data-block h5,.detail-centers h5,.detail-circulars h5{margin:0 0 9px;color:var(--muted);font-size:15px}
.detail-value-row{display:grid;grid-template-columns:minmax(115px,.7fr) minmax(0,1.3fr);gap:9px;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.detail-value-row:last-child{border-bottom:0}
.detail-value-row>span:first-child{color:var(--muted)}
.detail-value-row>strong{color:var(--ink-strong);font-weight:620;overflow-wrap:anywhere}
.detail-note{margin:8px 0;color:var(--muted);font-size:15px}
.detail-centers,.detail-circulars{margin:13px 0}
.detail-center-item,.detail-circular-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.detail-center-item strong{color:var(--ink-strong)}.detail-center-item span,.detail-center-item small{color:var(--muted)}
.detail-verification{margin:8px 0}.source-list{display:grid;gap:6px;margin-top:7px}

/* Responsive navigation and layouts */
.mobile-nav{display:none}
@media(max-width:1150px){
 .site-header-inner{gap:17px;padding-right:22px;padding-left:22px}
 .nav-link{gap:6px;padding-right:9px;padding-left:9px}
 .header-privacy-note{display:none}
 .calendar-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
 .filter-search{grid-column:span 3}
 .directory-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .university-row{grid-template-columns:46px minmax(0,1fr)}
 .university-row-actions{grid-column:2;justify-content:flex-start}
}
@media(max-width:900px){
 :root{--header-height:70px}
 .site-header-inner{gap:12px}
 .brand-copy small{display:none}
 .primary-nav{justify-content:flex-start;overflow-x:auto;scrollbar-width:thin}
 .nav-link{padding:0 9px}
 .cycle-chip{max-width:145px;overflow:hidden;text-overflow:ellipsis}
 .main-content{padding-top:30px}
 .calendar-detail-grid{grid-template-columns:minmax(0,1fr)}
 .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
 :root{--header-height:61px}
 html{scroll-padding-top:70px}
 body{font-size:16px}
 .site-header{position:sticky}
 .site-header-inner{min-height:var(--header-height);gap:10px;padding:7px 15px}
 .brand{gap:8px}
 .brand-mark{width:38px;height:38px;flex-basis:38px;border-radius:12px}
 .brand-copy strong{font-size:15px}
 .brand-copy small{display:none}
 .primary-nav{display:none}
 .header-actions{gap:7px;margin-left:auto}
 .cycle-chip{display:none}
 .icon-button{width:37px;height:37px;flex-basis:37px}
 .main-content{min-height:calc(100vh - var(--header-height));padding:25px 16px 120px}
 .page-intro{align-items:flex-start;margin-bottom:21px}
 h1{margin-bottom:9px;font-size:30px;line-height:1.32}
 h2{font-size:21px}
 .page-description{font-size:16px;line-height:1.75}
 .eyebrow{margin-bottom:9px;font-size:15px}
 .intro-date{display:none}
 .notice-banner{gap:10px;margin-bottom:20px;padding:13px}
 .notice-banner p{font-size:15px}
 .notice-tag{display:none}
 .dashboard-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .upcoming-card,.progress-card{min-height:0;padding:17px 15px}
 .compact-empty{padding:23px 5px 12px}
 .progress-empty{padding:20px 3px 17px}
 .quick-access-card{padding:17px 15px}
 .quick-links{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:12px}
 .quick-link{min-height:68px;padding:11px}
 .app-footer{flex-direction:column;gap:6px;padding-top:19px}
 .calendar-workspace,.directory-workspace,.personal-workspace{padding:15px;border-radius:15px}
 .calendar-toolbar{flex-wrap:wrap;gap:12px}
 .calendar-period-controls{flex:1 1 100%}
 .calendar-period-controls h2{margin-left:5px;font-size:19px}
 .calendar-view-switch{width:100%}
 .calendar-view-switch button{flex:1 1 0}
 .calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .filter-search{grid-column:1/-1}
 .filter-select{font-size:15px}
 .calendar-results-bar{align-items:flex-start;flex-direction:column;gap:4px}
 .calendar-day{min-height:75px;padding:4px 3px}
 .calendar-weekday{padding:8px 1px;font-size:15px}
 .calendar-day-number{width:25px;height:25px;margin:0 auto;font-size:15px}
 .calendar-day-events{align-items:center;margin-top:3px}
 .event-chip.is-compact{justify-content:center;width:17px;height:12px;min-height:12px;padding:0;background:transparent}
 .event-chip.is-compact .event-chip-dot{width:6px;height:6px}
 .event-chip.is-compact .event-chip-title{display:none}
 .more-events{font-size:15px}
 .calendar-legend{gap:8px 13px;font-size:15px}
 .calendar-detail-grid{gap:12px;margin-top:17px}
 .calendar-table-panel,.calendar-nb-panel{padding:15px}
 .calendar-panel-heading h2{font-size:19px}
 .directory-toolbar{align-items:flex-start;flex-direction:column}
 .sort-select{width:100%}
 .directory-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .directory-search{grid-column:1/-1}
 .university-row{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:14px 2px}
 .university-monogram{width:40px;height:40px}
 .university-row-heading{align-items:flex-start;flex-direction:column;gap:6px}
 .university-row-actions{grid-column:1/-1;padding-left:0}
 .personal-card-actions{width:100%}
 .personal-save-button,.personal-compare-button{flex:1 1 auto;min-height:39px}
 .personal-stats-grid{gap:7px}
 .personal-stat{padding:10px 9px}
 .personal-stat strong{font-size:22px}
 .personal-stat>span,.personal-stat small{font-size:15px}
 .personal-toolbar{align-items:flex-start}
 .personal-deadline-item{grid-template-columns:1fr;gap:4px}
 .saved-university-card{grid-template-columns:minmax(0,1fr)}
 .progress-select{align-items:flex-start;flex-direction:column}
 .progress-select select{width:100%}
 .saved-card-actions{padding-left:0}
 .compare-add-row{align-items:stretch;flex-direction:column}
 .compare-add-row .primary-action{width:100%}
 .admission-notes-layout{grid-template-columns:minmax(0,1fr);gap:17px}
 .admission-notes-workspace{padding:15px}
 .event-list-card{grid-template-columns:75px minmax(0,1fr);gap:10px}
 .event-list-card .event-open-button{grid-column:2;justify-self:start}
 .detail-data-grid{grid-template-columns:minmax(0,1fr)}
 .record-dialog-content{padding:17px}
 .record-dialog-header{margin:-17px -17px 16px;padding:15px 17px 12px}
 .mobile-nav{position:fixed;z-index:80;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:6px 4px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 -8px 24px rgba(34,42,36,.08);backdrop-filter:blur(16px)}
 .mobile-nav-link{display:flex;min-width:0;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:9px;color:var(--muted);text-align:center;text-decoration:none}
 .mobile-nav-link>span{font-size:19px;line-height:1.2}
 .mobile-nav-link small{max-width:100%;overflow-wrap:anywhere;color:inherit;font-size:15px;line-height:1.15;text-align:center;white-space:normal}
 .mobile-nav-link.is-active{background:var(--page-tint);color:var(--page-accent);font-weight:700}
}
@media(max-width:390px){
 .site-header-inner{padding-right:11px;padding-left:11px}
 .brand{gap:7px}.brand-copy strong{font-size:15px}
 .cycle-chip{display:none}
 .main-content{padding-right:12px;padding-left:12px}
 .calendar-filters,.directory-filters{grid-template-columns:minmax(0,1fr)}
 .filter-search,.directory-search{grid-column:auto}
 .personal-stats-grid{grid-template-columns:minmax(0,1fr)}
 .personal-stat{grid-template-columns:1fr auto}
 .mobile-nav{padding-right:2px;padding-left:2px}
 .mobile-nav-link small{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}