.topbar{position:relative;height:80px;background:var(--color-bg-topbar);display:flex;align-items:center;padding:0 var(--space-3xl);gap:var(--space-lg);box-shadow:var(--shadow-topbar);flex-shrink:0;border-bottom:4px solid var(--color-highlight-gold);padding-top:3px;box-sizing:content-box}.brand-logo{height:56px;width:auto;filter:var(--brand-logo-filter)}.brand-text{display:flex;flex-direction:column;line-height:var(--line-height-tight)}.brand-name{color:var(--color-text-inverse);font-weight:var(--font-weight-bold);font-size:28px}.brand-sub{color:#ffffffd6;font-size:var(--font-size-sm)}.ksu-logo{height:56px;width:auto;position:absolute;left:85%;transform:translateY(-4px)}@media(max-width:768px){.ksu-logo{height:28px;position:static;transform:translate(-5px);margin-left:auto;margin-right:var(--space-sm)}}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:transparent;border:none;cursor:pointer;padding:4px;min-width:48px;min-height:48px}.hamburger-line{display:block;width:24px;height:2px;background:#fff;border-radius:2px}@media(max-width:768px){.topbar{padding:0 var(--space-lg)}.hamburger{display:flex}.brand-logo{height:48px}.brand-name{font-size:24px}.ksu-logo{height:42px}}.sidebar{width:var(--size-sidebar-width);height:100%;min-height:100%;background-color:var(--color-bg-sidebar);display:flex;flex-direction:column;padding-top:var(--space-lg);flex-shrink:0}.nav-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;text-align:left;color:var(--color-text-inverse);padding:16px var(--space-lg);width:100%;cursor:pointer;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);transition:background-color var(--transition-base);border-left:4px solid transparent}.nav-link:hover{background-color:#ffffff1f}.nav-link.active{background:#ffffff38;border-left-color:var(--color-highlight-gold)}.nav-link-icon{width:22px;height:22px}.spacer{flex:0}@media(max-width:768px){.spacer{flex:0}}@media(max-width:768px){.sidebar{position:fixed;top:80px;left:0;height:calc(100% - 80px);transform:translate(-100%);transition:transform .25s ease;z-index:200;overflow-y:auto;justify-content:flex-start}.sidebar.open{transform:translate(0)}}.sidebar-backdrop{display:none}@media(max-width:768px){.sidebar-backdrop{display:block;position:fixed;top:80px;right:0;bottom:0;left:0;background:#0006;z-index:199}}.course-tab-group{position:relative}.course-popout{position:fixed;left:calc(var(--size-sidebar-width) + var(--space-sm));top:calc(var(--size-topbar-height) + var(--space-md));bottom:var(--space-md);width:320px;overflow:hidden;display:flex;flex-direction:column;background:var(--color-bg-primary);border-top:1px solid var(--color-gray-300);border-right:1px solid var(--color-gray-300);border-bottom:1px solid var(--color-gray-300);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:30}.course-popout-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-gray-200);background:var(--color-bg-secondary)}.course-popout-create-btn{padding:4px var(--space-sm)}.course-popout-state{margin:0;padding:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.course-popout-list{flex:1;overflow-y:auto;scrollbar-width:none}.course-popout-list::-webkit-scrollbar{width:0;height:0}.course-popout-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:0;background:transparent;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.course-popout-item:hover{background:var(--color-bg-secondary)}.course-popout-item.active{background:var(--color-accent-light)}.course-dot{width:9px;height:9px;border-radius:999px;flex-shrink:0}.course-item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.course-item-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-item-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media(max-width:768px){.course-popout{position:static!important;left:auto;top:auto;bottom:auto;width:100%;height:auto;max-height:400px;border-radius:0;border-left:none;border-right:none;box-shadow:none;border-top:1px solid var(--color-gray-200);border-bottom:1px solid var(--color-gray-200);overflow-y:auto}}@media(max-width:768px){.course-popout-header{display:none!important}}@media(max-width:768px){.course-tab-group{position:static}}@media(max-width:768px){.sidebar .course-popout{max-width:var(--size-sidebar-width);overflow-x:hidden}}.widget-panel{width:var(--size-widget-panel-width);min-width:var(--size-widget-panel-width);height:100%;background:var(--color-bg-secondary);border:1px solid var(--color-gray-300);border-radius:var(--radius-xl);box-shadow:var(--shadow-widget);padding:var(--space-lg) var(--space-lg);box-sizing:border-box;overflow:visible;flex-shrink:0}@media(max-width:768px){.widget-panel{display:none}}.widget-panel-title{margin:0 0 var(--space-lg) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.widget-card{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-gray-300)}.widget-card h3{margin:0 0 var(--space-md) 0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.widget-card p{margin:var(--space-sm) 0;line-height:var(--line-height-normal);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.widget-metric{font-size:1.6rem;font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.widget-note{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0!important}.widget-note-link{color:var(--color-primary-600);text-decoration:underline;text-underline-offset:2px}.widget-note-link:hover{color:var(--color-primary-700)}.course-card{background:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-300);display:flex;flex-direction:column;transition:box-shadow var(--transition-slow),transform var(--transition-slow);cursor:pointer}.course-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--color-gray-400)}.card-banner{height:90px;display:flex;align-items:flex-end;padding:var(--space-md) var(--space-lg);position:relative}.theme-blue{background-color:#1a4a8a}.theme-purple{background-color:#7b2d8b}.theme-green{background-color:#2d6a4f}.theme-orange{background-color:#c05621}.theme-teal{background-color:#155e75}.theme-red{background-color:#7f1d1d}.theme-violet{background-color:#3b0764}.theme-forest{background-color:#14532d}.theme-default{background-color:#334155}.course-code{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:#ffffffd9;letter-spacing:.04em;text-transform:uppercase}.card-body{padding:var(--space-md) var(--space-lg) var(--space-sm);flex:1;background:var(--color-bg-primary)}.course-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs) 0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.instructor{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0 0 var(--space-sm) 0}.course-meta{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin:0}.card-footer{padding:var(--space-sm) var(--space-lg) var(--space-md);border-top:1px solid var(--color-bg-secondary)}.go-btn{background:none;border:none;font-size:var(--font-size-xs);color:var(--color-accent);font-weight:var(--font-weight-medium);cursor:pointer;padding:0;transition:color var(--transition-base)}.go-btn:hover{color:var(--color-accent);text-decoration:underline}.course-composer-layer{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.course-composer-popout{background:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:var(--space-xl);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-sizing:border-box}.course-composer-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.course-composer-title-row h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.list-row{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg) var(--space-lg);background:var(--color-bg-primary);border-bottom:1px solid var(--color-bg-secondary);cursor:pointer;transition:background var(--transition-fast);position:relative;margin-bottom:var(--space-sm)}.list-row:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0;border-top:1px solid var(--color-bg-secondary)}.list-row:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.list-row:only-child{border-radius:var(--radius-md)}.list-row:hover{background:var(--color-gray-50)}.list-color-bar{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--radius-md) 0 0 var(--radius-md)}.list-course-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:800;color:#ffffffe6;letter-spacing:.02em;flex-shrink:0;text-transform:uppercase}.list-info{flex:1;min-width:0}.list-course-name{font-size:.9rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-course-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.list-go-btn{background:none;border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:5px var(--space-md);font-size:var(--font-size-xs);color:var(--color-gray-700);font-weight:var(--font-weight-medium);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast)}.list-go-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-gray-400)}.view-btn{display:flex;align-items:center;gap:var(--space-sm);padding:7px var(--space-lg);background:var(--color-bg-primary);border:1px solid var(--color-gray-300);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base)}.view-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-gray-400)}.view-menu-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:transparent;border-radius:10px}.view-menu{position:absolute;top:calc(100% + var(--space-sm));right:0;background:var(--color-bg-primary);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001a;z-index:20;min-width:140px;overflow:hidden}.view-option{display:flex;align-items:center;gap:var(--space-lg);width:100%;padding:10px var(--space-lg);background:none;border:none;font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer;transition:background var(--transition-fast);text-align:left}.view-option:hover{background:var(--color-bg-secondary)}.view-option.active{background:var(--color-accent-light);color:var(--color-accent);font-weight:var(--font-weight-semibold)}.dashboard-actions{display:flex;align-items:center;gap:var(--space-sm)}.view-switcher{position:relative;z-index:11}.kpi-card{background:var(--color-bg-primary);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-md)}.kpi-card p{margin:0 0 var(--space-md) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.kpi-card strong{font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-size:1.3rem;display:block}.card{width:100%;max-width:500px;background:var(--color-bg-primary);border-radius:var(--radius-sm);padding:40px;box-shadow:var(--shadow-xl);text-align:center}.header{display:flex;flex-direction:column;align-items:center}.header h2{font-size:28px;font-weight:var(--font-weight-bold);color:#003976;font-family:var(--font-family-base)}.logo{width:200px;margin-bottom:var(--space-xl)}.logo-rock{width:100px;margin-bottom:var(--space-lg)}.popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:999}.popup-card{width:100%;max-width:420px;background:var(--color-bg-primary);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-xl)}.popup-card h3{margin-top:0;margin-bottom:var(--space-md)}.popup-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg)}.popup-error{color:#b91c1c;margin-top:var(--space-sm);font-size:var(--font-size-sm)}.course-color-picker{display:flex;flex-direction:column;gap:var(--space-md)}.color-grid{display:grid;grid-template-columns:repeat(5,40px);gap:var(--space-sm)}.color-swatch{width:40px;height:40px;border:3px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.color-swatch.is-selected{border-color:var(--color-text-primary);box-shadow:0 0 0 2px #fff,0 0 0 4px #2b5aa6}.color-preview{width:40px;height:40px;border-radius:var(--radius-sm);border:2px solid var(--color-gray-300);flex-shrink:0}.color-code-row{display:flex;align-items:center;gap:var(--space-sm)}.color-code-input{max-width:180px}.color-picker-actions{display:flex;gap:var(--space-sm)}.color-apply-message{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#166534}.login-background{min-height:100vh;min-width:100vw;background:#1e2e56 url(../../../commencement_dark.jpg) center / cover no-repeat fixed}.login-overlay{min-height:100vh;padding:64px 32px 40px;background:linear-gradient(180deg,#06112ca6,#06112c73);display:flex;flex-direction:column;justify-content:space-between;gap:24px}.login-shell{width:min(760px,100%);margin:0 auto;display:block}.login-column{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 16px 36px #09122a47;border:1px solid rgba(213,220,232,.85)}.login-top{padding:56px 56px 36px;text-align:center}.login-bottom{padding:28px 56px 34px;background:#f6f7fa;border-top:1px solid #e0e5ef;display:grid;gap:14px;font-size:1rem;line-height:1.6;color:#1f355f}.login-bottom a{color:#0b67c2;text-decoration:none}.login-bottom a:hover{text-decoration:underline}.login-ksu-logo{width:min(320px,78%);height:auto;margin-bottom:20px}.login-title{margin:0;font-size:clamp(2rem,3.8vw,2.85rem);font-weight:500;color:#111827}.login-signin-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:30px;background:#086fc6;color:#fff;text-decoration:none;border:none;padding:12px 36px;min-width:170px;font-size:1.95rem;font-weight:700;border-radius:6px;cursor:pointer;transition:background-color .16s ease}.login-signin-btn:hover{background:#065ea9}.login-signin-btn:disabled{opacity:.75;cursor:wait}.login-error{margin:14px auto 0;max-width:520px;padding:10px 12px;border-radius:6px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:.95rem}.login-help-links{margin-top:24px;font-size:1.06rem;color:#334155}.login-help-links a{color:#0b67c2;text-decoration:none}.login-help-links a:hover{text-decoration:underline}.login-footer{width:min(760px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.login-footer a{color:#dbeafe;text-decoration:none;font-size:.95rem}.login-footer a:hover{text-decoration:underline}.login-preview-overlay{align-items:center;justify-content:center}.preview-shell{width:min(1020px,100%);background:#fff;border-radius:10px;border:1px solid #d9deeb;box-shadow:0 16px 36px #09122a40;padding:34px;display:grid;gap:24px}.preview-header h1{margin:0;font-size:2rem;color:#1f2937}.preview-header p{margin:6px 0 0;color:#475569}.preview-user-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.preview-user-card{border:1px solid #d7dee9;border-radius:8px;padding:18px;display:grid;gap:10px;background:#fbfcfe}.preview-user-card h2{margin:0;font-size:1.1rem;color:#0f172a}.preview-user-card p{margin:0;font-size:.95rem;color:#475569}.preview-role{font-size:.8rem;font-weight:700;color:#0b67c2;text-transform:uppercase;letter-spacing:.05em}.preview-user-card .login-signin-btn{margin-top:6px;width:100%;min-width:0;padding:10px 14px;font-size:.95rem}.preview-state{padding:22px;background:#f8fafc;border:1px solid #dbe2ee;border-radius:8px;color:#334155}.preview-state.preview-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.preview-back{justify-self:start;color:#0b67c2;text-decoration:none;font-weight:600}.preview-back:hover{text-decoration:underline}@media(max-width:1024px){.login-overlay{padding:40px 18px 24px}.preview-user-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.login-top{padding:34px 18px 24px}.login-bottom{padding:20px 18px 24px}.login-title{font-size:1.7rem}.login-signin-btn{font-size:1.15rem;width:100%}.login-footer{align-items:flex-start;flex-direction:column}.preview-shell{padding:20px}.preview-user-grid{grid-template-columns:1fr}}
