:root{--bg-color: #f4f4f0;--text-color: #111111;--border-color: #111111;--accent-1: #FFB5A7;--accent-2: #9BF6FF;--accent-3: #CAFFBF;--accent-yellow: #FDFFB6;--checked-color: #a0c4ff;--white: #FFFFFF;--muted: #5f5f58;--danger: #B50000;--color-black: var(--text-color);--color-ink: var(--text-color);--color-white: var(--white);--color-red: var(--accent-1);--color-red-hover: #111111;--color-taupe: var(--accent-2);--color-grey-light: #ebeae4;--color-grey-medium: var(--border-color);--color-grey-dim: var(--muted);--color-grey-soft: #8a8a80;--color-surface: var(--white);--color-surface-warm: var(--bg-color);--font-primary: "Outfit", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-secondary: var(--font-primary);--radius-sm: 8px;--radius-md: 12px;--radius-pill: 50px;--shadow-button: 3px 3px 0 var(--border-color);--shadow-card: 6px 6px 0 var(--border-color);--shadow-soft: 4px 4px 0 var(--border-color);--shadow-dropdown: 5px 5px 0 var(--border-color)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg-color);-webkit-text-size-adjust:100%}body{min-width:320px;background:radial-gradient(circle at 16px 16px,rgba(17,17,17,.045) 2px,transparent 2px),var(--bg-color);background-size:28px 28px;color:var(--text-color);font-family:var(--font-primary);font-size:16px;line-height:1.5;text-rendering:geometricPrecision}h1,h2,h3,h4,h5,h6{color:var(--text-color);font-family:var(--font-primary);font-weight:800;letter-spacing:0}h1{font-size:1.8rem;line-height:.98;margin-bottom:18px}h2{font-size:1.45rem;line-height:1.05;margin-bottom:18px}h3{font-size:1.15rem;line-height:1.1}p{color:inherit}a{color:inherit;text-decoration:none}button{min-height:46px;border:2px solid var(--border-color);border-radius:8px;background:var(--white);box-shadow:var(--shadow-button);color:var(--text-color);cursor:pointer;font-family:var(--font-primary);font-size:.95rem;font-weight:800;padding:11px 18px;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}button:hover{background:var(--accent-yellow);box-shadow:5px 5px 0 var(--border-color);transform:translate(-2px,-2px)}button:active{box-shadow:1px 1px 0 var(--border-color);transform:translate(1px,1px)}button:disabled{cursor:not-allowed;opacity:.55;transform:none}button.primary{background:var(--text-color)!important;box-shadow:var(--shadow-button);color:var(--white)!important}button.primary:hover{background:#000!important;box-shadow:5px 5px 0 var(--accent-1)}.secondary-button,button:not(.primary){background:var(--white);color:var(--text-color)}.secondary-button:hover,button:not(.primary):hover{background:var(--accent-yellow);color:var(--text-color)}input,textarea,select{width:100%;min-height:48px;margin-bottom:18px;border:2px solid var(--border-color);border-radius:10px;background:var(--white);color:var(--text-color);font-family:var(--font-primary);font-size:1rem;font-weight:400;padding:12px 14px;transition:box-shadow .18s ease,transform .18s ease,background-color .18s ease}textarea{line-height:1.55;resize:vertical}input:focus,textarea:focus,select:focus{outline:none;background:var(--white);box-shadow:4px 4px 0 var(--accent-2);transform:translate(-1px,-1px)}input::placeholder,textarea::placeholder{color:#77776f}label{display:block;margin-bottom:8px;color:var(--text-color);font-family:var(--font-primary);font-size:.9rem;font-weight:800}.container{width:min(100%,1120px);margin:0 auto;padding:40px 16px}.section{padding-top:44px;padding-bottom:44px}.section-alt{background-color:var(--accent-yellow)}.section-intro{max-width:680px;margin-bottom:28px;color:var(--muted);font-size:1rem;font-weight:600}.card{border:3px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-card);margin-bottom:22px;padding:20px}.card:hover{box-shadow:4px 4px 0 var(--border-color)}.page-hero{border-bottom:3px solid var(--border-color);background:linear-gradient(135deg,var(--accent-2) 0 34%,transparent 34%),linear-gradient(225deg,var(--accent-1) 0 28%,transparent 28%),var(--accent-yellow);color:var(--text-color);padding:42px 16px}.page-hero-inner{width:min(100%,1120px);margin:0 auto}.page-hero h1,.page-hero h1[style]{color:var(--text-color)!important}.breadcrumb{display:inline-flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--white);box-shadow:3px 3px 0 var(--border-color);color:var(--text-color);font-family:var(--font-primary);font-size:.88rem;font-weight:800;padding:8px 12px}.breadcrumb a{color:var(--text-color);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.hero-copy{max-width:700px;margin-top:12px;color:var(--text-color);font-size:1rem;font-weight:600}.hero-meta{display:inline-flex;margin-top:18px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-3);box-shadow:var(--shadow-button);color:var(--text-color);font-size:.92rem;font-weight:800;padding:8px 12px}.course-grid{display:grid;grid-template-columns:1fr;gap:24px}.course-card{position:relative;display:flex;min-height:230px;flex-direction:column;justify-content:space-between;overflow:hidden;border:3px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);box-shadow:6px 6px 0 var(--border-color);transition:transform .18s ease,box-shadow .18s ease}.course-card:hover{box-shadow:9px 9px 0 var(--border-color);transform:translate(-3px,-3px)}.course-card:before{content:"";position:absolute;inset:0 0 auto 0;height:14px;background:var(--accent-1);border-bottom:3px solid var(--border-color)}.course-card:nth-child(3n+2):before{background:var(--accent-2)}.course-card:nth-child(3n+3):before{background:var(--accent-3)}.course-card h2{margin-top:14px;font-size:1.55rem;line-height:1.02}.course-card-description{margin-bottom:16px;color:var(--muted);font-weight:600}.meta-text{display:inline-flex;width:fit-content;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-yellow);box-shadow:2px 2px 0 var(--border-color);color:var(--text-color);font-size:.86rem;font-weight:800;padding:5px 10px}.unit-link{display:block;text-decoration:none}.unit-card{display:grid;grid-template-columns:1fr;align-items:flex-start;gap:12px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.unit-card:hover{box-shadow:9px 9px 0 var(--border-color);transform:translate(-3px,-3px)}.unit-number{display:inline-flex;align-items:center;justify-content:center;width:54px;min-width:54px;height:42px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-2);box-shadow:3px 3px 0 var(--border-color);color:var(--text-color);font-family:var(--font-primary);font-size:1.2rem;font-weight:800;line-height:1}.unit-description{display:-webkit-box;overflow:hidden;color:var(--muted);font-weight:600;-webkit-box-orient:vertical;-webkit-line-clamp:4}.unit-overview{max-width:840px;border:3px solid var(--border-color);border-left-width:10px;border-left-color:var(--accent-3);margin-bottom:36px}.unit-overview-label{display:inline-flex;margin-bottom:10px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-yellow);box-shadow:2px 2px 0 var(--border-color);color:var(--text-color);font-size:.76rem;font-weight:800;letter-spacing:0;padding:5px 10px;text-transform:uppercase}.resource-section{margin-bottom:44px}.eyebrow-heading{display:inline-flex;margin-bottom:18px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-1);box-shadow:3px 3px 0 var(--border-color);color:var(--text-color);font-size:.78rem;font-weight:800;letter-spacing:0;padding:8px 12px;text-transform:uppercase}.resource-section:nth-of-type(3n+1) .eyebrow-heading{background:var(--accent-1)}.resource-section:nth-of-type(3n+2) .eyebrow-heading{background:var(--accent-2)}.resource-section:nth-of-type(3n+3) .eyebrow-heading{background:var(--accent-3)}.resource-card{border-left-width:3px;transition:transform .18s ease,box-shadow .18s ease}.resource-card:hover{box-shadow:8px 8px 0 var(--border-color);transform:translate(-2px,-2px)}.resource-card-header{display:flex;align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:12px}.resource-title{font-size:1.28rem;line-height:1.12}.due-chip{flex-shrink:0;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-yellow);box-shadow:2px 2px 0 var(--border-color);color:var(--text-color);font-size:.84rem;font-weight:800;padding:6px 10px;white-space:normal}.markdown-body{color:var(--muted);font-weight:600;line-height:1.7}.markdown-body p+p{margin-top:12px}.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:16px 0 8px}.markdown-body ul{margin:10px 0 10px 20px}.markdown-body a{color:var(--text-color);font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.resource-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-2);box-shadow:var(--shadow-button);color:var(--text-color);font-weight:800;padding:10px 14px;transition:transform .18s ease,box-shadow .18s ease}.resource-link:hover{box-shadow:5px 5px 0 var(--border-color);transform:translate(-2px,-2px)}.checklist-block{margin-top:20px}.checklist-meta{display:flex;align-items:flex-start;justify-content:space-between;flex-direction:column;gap:8px;margin-bottom:12px}.checklist-meta strong,.checklist-meta span{color:var(--text-color);font-size:.92rem;font-weight:800}.checklist-meta span{display:inline-flex;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-3);box-shadow:2px 2px 0 var(--border-color);padding:5px 10px}.checklist-progress,.progress-bar{width:100%;height:14px;overflow:hidden;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--white);box-shadow:3px 3px 0 var(--border-color)}.checklist-progress>*,.progress-bar>*{height:100%;background:var(--checked-color)}.checklist-items{display:flex;flex-direction:column;gap:12px;list-style:none}.checklist-item{display:flex;align-items:flex-start;gap:12px;min-height:48px;border:2px solid var(--border-color);border-radius:10px;background:var(--white);box-shadow:4px 4px 0 var(--border-color);cursor:pointer;font-weight:800;padding:12px;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.checklist-item:hover{box-shadow:6px 6px 0 var(--border-color);transform:translate(-2px,-2px)}.check-box{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;border:2px solid var(--border-color);border-radius:6px;background:var(--white);color:var(--text-color);margin-top:0;transition:background-color .18s ease,transform .18s ease}.checklist-item.is-checked{background:var(--checked-color);opacity:1}.checklist-item.is-checked .check-box{border-color:var(--border-color);background:var(--text-color);color:var(--white)}.checklist-item.is-checked>span{text-decoration:line-through;text-decoration-thickness:2px}.navbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-bottom:3px solid var(--border-color);background:var(--white);padding:12px 16px}.navbar-brand{color:var(--text-color);font-family:var(--font-primary);font-size:1.45rem;font-weight:800;letter-spacing:-.01em}.navbar-brand:after{content:"";display:inline-block;width:10px;height:10px;margin-left:7px;border:2px solid var(--border-color);border-radius:50%;background:var(--danger);box-shadow:2px 2px 0 var(--border-color);vertical-align:8px}.navbar-search{grid-column:1 / -1;min-width:0}.navbar-admin-link{display:inline-flex;align-items:center;justify-content:flex-end;min-height:40px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-yellow);box-shadow:3px 3px 0 var(--border-color);color:var(--text-color);font-size:.82rem;font-weight:800;padding:8px 12px;white-space:nowrap}.global-search{position:relative;width:100%}.global-search-input{height:46px;min-height:46px;margin:0;border-radius:var(--radius-pill);background:var(--bg-color);border:2px solid var(--border-color);box-shadow:3px 3px 0 var(--border-color);font-size:.95rem;font-weight:600;padding:10px 42px 10px 16px}.global-search-icon{position:absolute;right:15px;top:15px;color:var(--text-color)}.global-search-panel{position:absolute;top:calc(100% + 12px);left:0;right:0;z-index:100;max-height:min(420px,72vh);overflow-y:auto;border:3px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-dropdown)}.global-search-state{padding:16px;color:var(--muted);font-size:.9rem;font-weight:800}.global-search-list{list-style:none}.global-search-item{border-bottom:2px solid var(--border-color);cursor:pointer;padding:14px 16px;transition:background-color .18s ease}.global-search-item:last-child{border-bottom:0}.global-search-item:hover{background:var(--accent-2)}.search-result-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px}.search-result-kind{border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-1);box-shadow:2px 2px 0 var(--border-color);color:var(--text-color);font-size:.66rem;font-weight:800;padding:3px 7px;text-transform:uppercase}.search-result-snippet{overflow:hidden;color:var(--muted);font-size:.82rem;font-weight:600;margin:0;text-overflow:ellipsis;white-space:nowrap}.admin-layout{display:flex;min-height:100vh;flex-direction:column;background:var(--bg-color)}.admin-login-page{background:radial-gradient(circle at 16px 16px,rgba(17,17,17,.045) 2px,transparent 2px),var(--bg-color)!important;background-size:28px 28px!important;padding:16px}.admin-login-shell{max-width:440px!important;padding:0!important}.admin-login-header{margin-bottom:28px!important}.admin-login-brand{display:inline-flex;border:3px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-1);box-shadow:var(--shadow-button);color:var(--text-color)!important;font-size:1.4rem!important;font-weight:800!important;padding:7px 14px}.admin-login-panel{border:3px solid var(--border-color)!important;border-radius:var(--radius-md);background:var(--white)!important;box-shadow:var(--shadow-card);padding:24px!important}.admin-sidebar{position:static;display:flex;width:100%;height:auto;flex-direction:column;border-bottom:3px solid var(--border-color);background:var(--white);padding:18px 16px}.admin-brand-block{margin-bottom:18px}.admin-brand{color:var(--text-color);font-size:1.25rem;font-weight:800}.admin-user{display:inline-flex;width:fit-content;margin-top:8px;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--accent-2);box-shadow:2px 2px 0 var(--border-color);color:var(--text-color);font-size:.82rem;font-weight:800;padding:5px 10px}.admin-nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px}.admin-nav-link{display:block;border:2px solid var(--border-color);border-radius:var(--radius-pill);background:var(--white);box-shadow:3px 3px 0 var(--border-color);color:var(--text-color);font-size:.92rem;font-weight:800;padding:9px 13px;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.admin-nav-link:hover,.admin-nav-link.is-active{background:var(--accent-3);box-shadow:5px 5px 0 var(--border-color);color:var(--text-color);transform:translate(-2px,-2px)}.admin-logout{margin-top:18px;padding-top:0}.secondary-button{width:100%;border:2px solid var(--border-color)!important;background:var(--white)!important;box-shadow:var(--shadow-button)!important;color:var(--text-color)!important}.secondary-button:hover{background:var(--accent-yellow)!important}.admin-content{flex:1;max-width:1320px;width:100%;padding:28px 16px 48px}.admin-toolbar{display:flex;align-items:stretch;flex-direction:column;gap:14px;margin-bottom:24px}.admin-toolbar h1,.admin-toolbar h2{margin-bottom:0!important}.admin-panel{border:3px solid var(--border-color);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-card);margin-bottom:36px;padding:20px}.admin-list-card{display:flex;align-items:flex-start;justify-content:space-between;flex-direction:column;gap:16px}.admin-list-card h3{font-size:1.15rem!important}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button-row,.button-row a,.button-row button,.admin-toolbar button{width:100%}.admin-layout button:not(.primary),.button-row button:not(.primary){border:2px solid var(--border-color)!important;background:var(--white)!important;box-shadow:var(--shadow-button)!important;color:var(--text-color)!important}.admin-layout button:not(.primary):hover,.button-row button:not(.primary):hover{background:var(--accent-yellow)!important}.dropdown{border:3px solid var(--border-color);background:var(--white);box-shadow:var(--shadow-dropdown)}.text-error{width:fit-content;margin-top:-4px;margin-bottom:16px;border:2px solid var(--border-color);border-radius:10px;background:var(--accent-1);box-shadow:3px 3px 0 var(--border-color);color:var(--text-color);font-size:.9rem;font-weight:800;padding:8px 10px}@media (min-width: 768px){h1{font-size:clamp(2.6rem,5vw,4.4rem)}h2{font-size:clamp(1.8rem,3vw,2.5rem)}.container{padding:64px 28px}.section{padding-top:72px;padding-bottom:72px}.section-intro,.hero-copy{font-size:1.12rem}.card{padding:24px}.navbar{grid-template-columns:auto minmax(260px,460px) auto;gap:24px;padding:14px 28px}.navbar-search{grid-column:auto}.navbar-admin-link{font-size:.9rem}.page-hero{padding:72px 28px}.course-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.course-card{min-height:250px}.unit-card{grid-template-columns:auto 1fr;gap:20px}.resource-card-header,.checklist-meta{align-items:flex-start;flex-direction:row}.admin-layout{flex-direction:row}.admin-sidebar{position:sticky;top:0;width:252px;height:100vh;border-right:3px solid var(--border-color);border-bottom:0;padding:24px 18px}.admin-nav{flex-direction:column}.admin-logout{margin-top:auto;padding-top:40px}.admin-content{padding:44px}.admin-toolbar{align-items:center;flex-direction:row;justify-content:space-between}.admin-panel{padding:28px}.admin-list-card{align-items:center;flex-direction:row}.button-row,.button-row a,.button-row button,.admin-toolbar button{width:auto}}
