:root{--cc-accent: #3182f6;--cc-accent-soft: rgba(49, 130, 246, .08);--cc-accent-indigo: #6366f1;--cc-positive: #10b981;--cc-warning: #f59e0b;--cc-danger: #ef4444;--cc-bg: #f2f4f6;--cc-bg-surface: #ffffff;--cc-text: #191f28;--cc-muted: #4e5968;--cc-subtle: #8b95a1;--cc-line: #e5e8eb;--cc-line-strong: #d1d6db;--cc-glass-bg: rgba(255, 255, 255, .75);--cc-glass-blur: blur(20px);--cc-glass-border: rgba(255, 255, 255, .4);--cc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .04);--cc-shadow: 0 8px 24px rgba(0, 0, 0, .06);--cc-shadow-lg: 0 16px 40px rgba(0, 0, 0, .12);--cc-shadow-xl: 0 24px 60px rgba(0, 0, 0, .18);--cc-max: 1200px;--cc-ease: cubic-bezier(.2, 0, 0, 1);--cc-gap: 24px;--cc-gap-sm: 12px;--cc-gap-mobile: 14px;--cc-font: "Pretendard Variable", Pretendard, system-ui, sans-serif;--cc-font-h1: 2.5rem;--cc-font-h1-mobile: 1.65rem;--cc-font-h2: 1.8rem;--cc-font-h2-mobile: 1.4rem}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{margin:0;padding:0;width:100%;min-height:100%}body{font-family:var(--cc-font);color:var(--cc-text);background:var(--cc-bg);overflow-x:hidden;letter-spacing:-.01em;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit;outline:none}.cc-glass-card{background:var(--cc-glass-bg);backdrop-filter:var(--cc-glass-blur);-webkit-backdrop-filter:var(--cc-glass-blur);border:1px solid var(--cc-glass-border);box-shadow:var(--cc-shadow);transition:all .2s var(--cc-ease)}.cc-glass-card:active{transform:scale(.97)}.skeleton-pulse{animation:skeleton-pulse 1.5s ease-in-out infinite;background:var(--cc-line);opacity:.6}@keyframes skeleton-pulse{0%{opacity:.4}50%{opacity:.7}to{opacity:.4}}html,body,#root{width:100%;min-height:100dvh}html{overflow-x:hidden;overflow-y:auto;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden;overflow-y:auto}#root{overflow:visible}input,textarea,select,button{font-size:16px;appearance:none;-webkit-appearance:none}:root{--cc-page-padding: 24px;--cc-card-radius: 20px;--cc-section-gap: 24px}.portal-app{width:100%;min-height:100dvh;color:var(--cc-text);background:var(--cc-bg);overflow-x:hidden;position:relative}.cc-mesh-bg{display:block!important;position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:#fff;background-image:radial-gradient(at 0% 0%,rgba(49,130,246,.05) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(99,102,241,.05) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(49,130,246,.05) 0px,transparent 50%),radial-gradient(at 0% 100%,rgba(99,102,241,.05) 0px,transparent 50%);filter:blur(80px);opacity:.6}.portal-shell--desktop,.portal-shell--private{display:flex;height:100dvh;min-height:100dvh;background:transparent}.portal-shell__desktop-main,.portal-main-private{flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;background:transparent;scroll-behavior:smooth}.portal-shell--mobile{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100dvh;min-height:100dvh;background:transparent}.portal-shell__mobile-main{min-height:0;padding:0;overflow-x:hidden;overflow-y:auto;background:transparent;scroll-behavior:smooth}.portal-shell__mobile-nav{position:fixed;bottom:0;z-index:1100;border-top:1px solid var(--cc-line)}.portal-content-centered,.portal-content-private{width:100%;max-width:var(--cc-max);margin:0 auto;padding:0 var(--cc-gap-mobile);animation:portal-fade-in .5s var(--cc-ease)}@media(min-width:961px){.portal-content-centered,.portal-content-private{padding:0 var(--cc-gap)}}@keyframes portal-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.portal-header{position:sticky;top:0;z-index:1000;width:100%;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--cc-line)}.portal-header-inner{width:min(100%,var(--cc-max));min-height:72px;margin:0 auto;padding:0 var(--cc-page-padding);display:flex;align-items:center;justify-content:space-between;gap:20px}.portal-header-nav{display:flex;align-items:center;gap:20px}.portal-header-link{font-size:.82rem;font-weight:800;color:var(--cc-subtle);transition:color .2s var(--cc-ease)}.portal-header-link:hover{color:var(--cc-accent)}.portal-header-link.is-active{color:var(--cc-text)}.portal-home-button,.portal-home-inline-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;border:1px solid var(--cc-line-strong);background:#fff;color:var(--cc-text);font-size:.88rem;font-weight:800;box-shadow:var(--cc-shadow-sm);transition:all .2s var(--cc-ease)}.portal-home-button:hover,.portal-home-inline-link:hover{transform:translateY(-1px);box-shadow:var(--cc-shadow);border-color:var(--cc-accent)}.portal-home-button:active{transform:translateY(0)}.portal-home-button--primary{background:var(--cc-accent);border-color:var(--cc-accent);color:#fff}.portal-home-button--primary:hover{background:#1d6fe6;border-color:#1d6fe6}.portal-home-page,.portal-surface-page,.portal-benefits-shell,.portal-dining-page{display:grid;gap:20px}.portal-home-hero,.portal-surface-hero,.portal-benefits-hero,.portal-home-panel,.portal-benefits-panel,.portal-dining-hero,.portal-dining-notice-panel,.portal-dining-menu-panel{background:#fff;border:1px solid var(--cc-line);border-radius:20px;padding:24px;box-shadow:none}.portal-home-hero,.portal-surface-hero,.portal-benefits-hero__grid,.portal-home-columns,.portal-benefits-columns{display:grid;gap:20px}.portal-home-hero{grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr)}.portal-surface-hero{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}.portal-benefits-hero__grid,.portal-benefits-columns{grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr)}.portal-home-columns{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr)}.portal-home-hero__copy,.portal-home-hero__status,.portal-surface-hero__copy,.portal-surface-hero__status,.portal-surface-hero__actions,.portal-benefits-statboard,.portal-benefits-rail,.portal-home-card-list,.portal-home-stream-list{display:grid;gap:12px}.portal-home-chip,.portal-benefits-list-card__kicker,.portal-dining-chip{display:inline-flex;width:fit-content;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid var(--cc-line);background:#fff;color:var(--cc-text);font-size:.72rem;font-weight:900}.portal-home-hero__copy h1,.portal-surface-hero__copy h1,.portal-benefits-hero h1{margin:0;font-size:clamp(1.7rem,3vw,2.4rem);font-weight:950;letter-spacing:-.04em;line-height:1.12}.portal-home-hero__copy p,.portal-surface-hero__copy p,.portal-benefits-hero p,.portal-home-section-header p,.portal-home-content-card p,.portal-home-stream-item p,.portal-surface-card p,.portal-benefits-list-card p,.portal-benefits-rail__item p,.portal-dining-hero__copy p,.portal-dining-notice-card p,.portal-dining-notice-list__item p{margin:0;color:var(--cc-muted);font-size:.85rem;line-height:1.6;font-weight:600}.portal-home-status-card,.portal-home-stat,.portal-home-quick-link,.portal-home-content-card,.portal-home-stream-item,.portal-surface-card,.portal-benefits-stat,.portal-benefits-track__item,.portal-benefits-category,.portal-benefits-list-card,.portal-benefits-rail__item,.portal-dining-notice-card,.portal-dining-notice-list__item,.portal-dining-day-card,.portal-dining-meal-card{display:grid;gap:8px;background:#fff;border:1px solid var(--cc-line);border-radius:18px;padding:18px;box-shadow:none}.portal-home-status-grid,.portal-home-quick-links,.portal-surface-grid,.portal-benefits-track,.portal-benefits-category-grid,.portal-dining-day-grid{display:grid;gap:12px}.portal-home-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-home-quick-links{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-surface-grid,.portal-dining-day-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.portal-benefits-track{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-benefits-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-home-status-card>span,.portal-home-section-header span,.portal-home-content-card__kicker,.portal-home-stream-item__meta span,.portal-surface-card span,.portal-benefits-category__meta,.portal-benefits-list-card__head span,.portal-benefits-list-card__meta span,.portal-dining-section-title span,.portal-dining-notice-card__meta span,.portal-dining-notice-list__side time{color:var(--cc-subtle);font-size:.72rem;font-weight:800}.portal-home-status-card strong,.portal-home-stat strong,.portal-home-section-header strong,.portal-home-quick-link strong,.portal-home-content-card strong,.portal-home-stream-item strong,.portal-surface-card strong,.portal-benefits-stat strong,.portal-benefits-track__item strong,.portal-benefits-category strong,.portal-benefits-list-card h3,.portal-benefits-rail__item strong,.portal-dining-hero__copy strong,.portal-dining-section-title strong,.portal-dining-notice-card h2,.portal-dining-notice-list__item strong{margin:0;color:var(--cc-text);font-weight:900;letter-spacing:-.03em}.portal-home-content-card__meta,.portal-home-stream-item__meta,.portal-benefits-list-card__head,.portal-benefits-list-card__meta,.portal-dining-notice-card__meta,.portal-dining-notice-list__side,.portal-dining-day-card>header,.portal-dining-meal-card__header,.portal-dining-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-dining-week-nav{display:inline-flex;align-items:center;gap:8px}.portal-dining-week-nav button,.portal-dining-toggle,.portal-dining-inline-link,.portal-dining-notice-list__side a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 12px;border-radius:999px;border:1px solid var(--cc-line-strong);background:#fff;color:var(--cc-text);font-size:.78rem;font-weight:800}.portal-dining-meal-card ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:.8rem;line-height:1.45}.portal-benefits-list,.portal-dining-layout,.portal-dining-notice-list,.portal-dining-meal-list{display:grid;gap:12px}.portal-benefits-link{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:900}.portal-updates-item,.portal-feed-item,.portal-grid-board>*,.portal-info-row{background:#fff;border:1px solid var(--cc-line);box-shadow:none}.portal-grid-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px}.portal-info-row{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}.portal-page-section-header{margin-bottom:24px}.portal-page-section-header h1{margin:0;font-size:1.4rem;font-weight:950;letter-spacing:-.04em;line-height:1.2}.portal-page-section-header p{margin:6px 0 0;color:var(--cc-muted);font-size:.85rem;line-height:1.55}.portal-surface-page{padding:4px 0 48px}.portal-surface-page--dense{gap:18px}.portal-surface-hero{position:relative;overflow:hidden;grid-template-columns:1fr;align-items:stretch;border-radius:24px;background:linear-gradient(135deg,#fffffff5,#f7fbfffa),radial-gradient(circle at 88% 16%,rgba(49,130,246,.12),transparent 34%);box-shadow:0 18px 44px #191f2814}.portal-surface-hero__eyebrow,.portal-surface-featured__badge{display:inline-flex;width:fit-content;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;border:1px solid rgba(49,130,246,.16);background:#3182f614;color:var(--cc-accent);font-size:.72rem;font-weight:900}.portal-surface-hero__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.28fr);gap:22px;align-items:end}.portal-surface-hero__title{margin:14px 0 0;color:var(--cc-text);font-size:clamp(1.85rem,3vw,2.7rem);font-weight:950;letter-spacing:-.04em;line-height:1.1}.portal-surface-hero__description{max-width:680px;margin:12px 0 0;color:var(--cc-muted);font-size:.98rem;font-weight:650;line-height:1.65}.portal-surface-statboard{display:grid;gap:10px}.portal-surface-stat{display:grid;gap:6px;min-height:118px;align-content:center;padding:20px;border-radius:18px;border:1px solid rgba(209,214,219,.86);background:#fff;box-shadow:0 12px 30px #191f2812}.portal-surface-stat__label{color:var(--cc-subtle);font-size:.78rem;font-weight:850}.portal-surface-stat__value{color:var(--cc-text);font-size:2.1rem;font-weight:950;letter-spacing:0;line-height:1}.portal-surface-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px}.portal-surface-featured,.portal-surface-rail,.portal-surface-list{display:grid;gap:16px;border:1px solid var(--cc-line);border-radius:22px;background:#fff;box-shadow:0 14px 34px #191f280f}.portal-surface-featured,.portal-surface-list{padding:24px}.portal-surface-featured__title{margin:0;color:var(--cc-text);font-size:clamp(1.3rem,2vw,1.8rem);font-weight:950;letter-spacing:-.035em;line-height:1.22}.portal-surface-featured__description{margin:0;color:var(--cc-muted);font-size:.92rem;font-weight:650;line-height:1.65}.portal-surface-rail{padding:18px}.portal-surface-rail__section,.portal-surface-rail__items,.portal-surface-list__items{display:grid;gap:10px}.portal-surface-rail__title{margin:0 0 2px;color:var(--cc-text);font-size:.98rem;font-weight:950;letter-spacing:-.02em}.portal-surface-list__header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.portal-surface-list__header h2{margin:0;color:var(--cc-text);font-size:1.24rem;font-weight:950;letter-spacing:-.03em}.portal-surface-list__header p{margin:6px 0 0;color:var(--cc-muted);font-size:.86rem;font-weight:650;line-height:1.55}.portal-surface-list__item,.portal-surface-rail__item{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:16px 18px;border:1px solid var(--cc-line);border-radius:16px;background:#fff;color:var(--cc-text);transition:border-color .18s var(--cc-ease),transform .18s var(--cc-ease),box-shadow .18s var(--cc-ease)}.portal-surface-list__item:hover{transform:translateY(-1px);border-color:#3182f647;box-shadow:0 12px 26px #191f2812}.portal-surface-list__item div{min-width:0}.portal-surface-list__item strong,.portal-surface-rail__item strong{display:block;color:var(--cc-text);font-size:.94rem;font-weight:900;line-height:1.35}.portal-surface-list__item p{margin:5px 0 0;color:var(--cc-muted);font-size:.82rem;font-weight:650;line-height:1.5}.portal-surface-list__item span{flex:0 0 auto;max-width:180px;color:var(--cc-subtle);font-size:.78rem;font-weight:850;text-align:right}.cc-layout__sidebar{width:240px;flex-shrink:0}@media(max-width:960px){:root{--cc-page-padding: 16px;--cc-card-radius: 18px}html,body,#root,.portal-app{min-height:100dvh}.portal-home-hero,.portal-home-columns,.portal-surface-hero,.portal-benefits-hero__grid,.portal-benefits-columns,.portal-surface-hero__body,.portal-surface-grid{grid-template-columns:1fr}.portal-surface-hero__title{font-size:var(--cc-font-h1-mobile)}.portal-surface-stat{min-height:96px}.portal-surface-featured,.portal-surface-list{padding:18px}.portal-surface-rail{padding:14px}.portal-surface-list__item{align-items:flex-start;flex-direction:column}.portal-surface-list__item span{max-width:none;text-align:left}.portal-home-quick-links{grid-template-columns:repeat(6,1fr);gap:6px}.portal-home-status-grid,.portal-benefits-track,.portal-benefits-category-grid{grid-template-columns:1fr}.portal-home-hero,.portal-surface-hero,.portal-benefits-hero,.portal-home-panel,.portal-benefits-panel,.portal-dining-hero,.portal-dining-notice-panel,.portal-dining-menu-panel{padding:18px;border-radius:18px}.portal-header-nav{display:none}.portal-content-private{padding-top:10px}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.cc-tap-effect:active{transform:scale(.96);opacity:.8}
