:root { --green:#159b70; --deep:#0d7857; --mint:#eaf6f0; --ink:#202c27; --muted:#75817b; --line:#e4eae6; --paper:#f6f8f7; --white:#fff; --warm:#aa7244; --rose:#a85a69; --blue:#527aa8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; font-size:14px; line-height:1.6; letter-spacing:0; }
[hidden] { display:none !important; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button,a { touch-action:manipulation; }
a { color:inherit; text-decoration:none; }
button { border:0; }
button:disabled { cursor:not-allowed; opacity:.46; }
h1,h2,h3,p { margin:0; }
:focus-visible { outline:3px solid #82cdb1; outline-offset:3px; }
button,a,select,input,textarea,.course-card { transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s; }
.wrap { width:min(1180px,calc(100% - 56px)); margin-inline:auto; }
.icon { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; flex:0 0 20px; vertical-align:middle; }
.icon svg { display:block; width:100%; height:100%; stroke-width:1.8; }
.brand-icon { display:inline-flex; flex-shrink:0; }
.brand-icon svg { display:block; width:44px; height:44px; }
.topbar { position:sticky; top:0; z-index:30; border-bottom:1px solid var(--line); background:#ffffffed; backdrop-filter:blur(14px); }
.topbar-inner { min-height:76px; display:flex; align-items:center; gap:40px; }
.brand { display:flex; align-items:center; gap:11px; flex-shrink:0; }
.brand strong { display:block; font-size:18px; font-weight:750; line-height:1.4; }
.brand small { display:block; margin-top:2px; color:var(--muted); font-size:11px; }
.topnav { display:flex; align-items:stretch; gap:28px; margin-left:26px; align-self:stretch; }
.nav-item { position:relative; padding:0; background:none; color:var(--muted); font-weight:600; white-space:nowrap; }
.nav-item:hover,.nav-item.active { color:var(--deep); }
.nav-item.active::after { content:""; position:absolute; bottom:0; left:1px; right:1px; height:3px; background:var(--green); border-radius:2px 2px 0 0; }
.header-actions { margin-left:auto; display:flex; align-items:center; gap:22px; }
.text-action { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:0; background:none; color:var(--muted); font-size:13px; white-space:nowrap; }
.text-action:hover { color:var(--deep); }
.login-action { color:var(--ink); }
.hero { position:relative; overflow:hidden; background:#f2f5f2; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 63%; }
.hero::after { content:""; position:absolute; inset:0; background:#ffffff12; pointer-events:none; }
.hero-inner { position:relative; z-index:1; padding-block:34px 37px; }
.location { display:flex; align-items:center; gap:5px; color:var(--deep); font-size:12px; font-weight:600; }
.location .icon { width:15px; height:15px; flex-basis:15px; }
.hero h1 { font-size:34px; line-height:1.3; margin-top:10px; font-weight:750; }
.hero-copy { color:#68756d; margin-top:9px; font-size:14px; }
.hero-actions { display:flex; gap:12px; margin-top:23px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:11px 19px; border-radius:6px; background:var(--green); border:1px solid var(--green); color:#fff; font-weight:650; line-height:1.4; }
.button:hover { background:var(--deep); border-color:var(--deep); box-shadow:0 5px 12px #0d78551c; transform:translateY(-1px); }
.button:active { transform:translateY(0); box-shadow:none; }
.button.secondary { background:#fffffff0; border-color:#d6e3db; color:var(--deep); }
.button.secondary:hover { border-color:var(--green); background:#fff; }
.hero-actions .button { min-width:170px; }
.service-strip { background:#fff; border-bottom:1px solid var(--line); }
.service-inner { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding-block:18px; }
.service-fact { display:flex; align-items:center; justify-content:center; gap:10px; border-right:1px solid var(--line); }
.service-fact:first-child { justify-content:flex-start; }
.service-fact:last-child { border-right:0; justify-content:flex-end; }
.service-fact .icon { color:var(--green); width:23px; height:23px; flex-basis:23px; }
.service-fact strong { display:block; font-size:13px; font-weight:650; }
.service-fact small { display:block; margin-top:1px; font-size:11px; color:var(--muted); }
.workspace { padding-block:30px 46px; }
.workspace-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.workspace-heading>div { min-width:0; }
.heading-title { display:flex; align-items:center; gap:14px; }
h2 { font-size:23px; font-weight:700; line-height:1.4; }
.result-count { color:var(--muted); font-size:12px; }
.heading-action { display:inline-flex; align-items:center; gap:7px; flex-shrink:0; white-space:nowrap; color:var(--deep); font-size:13px; font-weight:600; min-height:44px; background:none; padding:0; }
.filterbar { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px 16px; padding-bottom:23px; border-bottom:1px solid var(--line); }
label { min-width:0; }
.field-label { display:block; margin-bottom:6px; color:#67756d; font-size:12px; font-weight:600; }
select,input,textarea { display:block; width:100%; min-height:43px; padding:10px 12px; background:#fff; border:1px solid #dfe6e1; border-radius:6px; outline:0; line-height:1.5; }
select { -webkit-appearance:none; appearance:none; padding-right:42px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%230d7857' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:18px 18px; }
select:hover:not(:disabled) { border-color:#82bd9f; }
input:focus,select:focus,textarea:focus { border-color:#58b792; box-shadow:0 0 0 3px #159b7010; }
.budget-input { display:flex; align-items:stretch; background:#fff; border:1px solid #dfe6e1; border-radius:6px; overflow:hidden; }
.budget-input:focus-within { border-color:#58b792; box-shadow:0 0 0 3px #159b7010; }
.budget-input input { flex:1; width:0; min-width:0; border:0; border-radius:0; box-shadow:none; appearance:textfield; -moz-appearance:textfield; font-variant-numeric:tabular-nums; }
.budget-input input::-webkit-inner-spin-button,.budget-input input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.budget-step { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; min-height:44px; padding:0; background:var(--mint); color:var(--deep); }
.budget-step:first-child { border-right:1px solid var(--line); }
.budget-step:last-child { border-left:1px solid var(--line); }
.budget-step:hover:not(:disabled) { color:#fff; background:var(--green); }
.budget-step:disabled { color:#a5ada8; background:#f0f3f1; opacity:1; cursor:not-allowed; }
.budget-step:focus-visible { outline-offset:-3px; }
.budget-unit { display:inline-flex; align-items:center; flex:0 0 auto; padding-inline:13px; color:#67756d; font-size:13px; white-space:nowrap; }
input::placeholder,textarea::placeholder { color:#a0aaa4; }
.search-row { display:flex; align-items:center; gap:12px; grid-column:1/-1; }
.search-box { position:relative; flex:1; }
.search-box .icon { position:absolute; left:13px; top:12px; width:18px; height:18px; color:#87958c; }
.search-box input { padding-left:40px; }
.icon-button { display:inline-flex; width:43px; height:43px; flex:0 0 43px; align-items:center; justify-content:center; background:#fff; border:1px solid #dfe6e1; border-radius:6px; color:#718078; }
.icon-button:hover { background:var(--mint); color:var(--deep); border-color:#a9cdbb; }
.course-layout { display:grid; grid-template-columns:minmax(0,1fr) 248px; gap:30px; margin-top:23px; align-items:start; }
.course-list { display:grid; gap:13px; min-width:0; }
.course-card { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) 104px; gap:15px; padding:20px; background:#fff; border:1px solid var(--line); border-radius:8px; }
.course-card:hover { border-color:#aad2be; box-shadow:0 5px 18px #1d503608; transform:translateY(-2px); }
.subject-mark { display:flex; width:42px; height:42px; align-items:center; justify-content:center; color:var(--deep); background:#eaf6f0; border-radius:7px; }
.subject-mark.blue { color:var(--blue); background:#eef3fa; }
.subject-mark.rose { color:var(--rose); background:#f9eff2; }
.subject-mark.warm { color:var(--warm); background:#f8f3eb; }
.subject-mark .icon { width:23px; height:23px; }
.course-main { min-width:0; }
.course-kicker { display:flex; align-items:center; gap:8px; margin-top:-1px; color:var(--muted); font-size:11px; min-height:18px; }
.course-card h3 { font-size:19px; line-height:1.45; font-weight:650; margin-top:3px; overflow-wrap:anywhere; }
.course-facts { display:grid; grid-template-columns:1.05fr 1fr 1.15fr; gap:10px; margin:14px 0 0; }
.course-facts dt { font-size:11px; color:#939d96; margin-bottom:2px; }
.course-facts dd { margin:0; font-size:12px; color:#52635a; }
.schedule { display:flex; align-items:flex-start; gap:6px; color:#839086; font-size:12px; margin-top:12px; }
.schedule .icon { width:14px; height:14px; flex-basis:14px; margin-top:3px; }
.course-side { display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:18px; padding-top:20px; }
.pay { color:var(--deep); font-weight:700; font-size:23px; line-height:1.3; white-space:nowrap; }
.pay small { display:block; color:#8b978f; font-size:10px; font-weight:400; text-align:right; margin-top:3px; }
.detail-button { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-height:40px; padding:7px 10px; background:#edf7f1; color:var(--deep); border:1px solid #e2f0e7; border-radius:5px; font-size:12px; white-space:nowrap; }
.detail-button:hover { background:#e0f2e8; border-color:#b6dcc7; }
.detail-button .icon { width:14px; height:14px; flex-basis:14px; }
.sidebar { border-left:1px solid var(--line); padding-left:25px; min-width:0; position:sticky; top:100px; }
.sidebar h3 { font-size:15px; font-weight:650; margin:0 0 17px; }
.policy-item { display:flex; align-items:flex-start; gap:10px; margin:0 0 20px; }
.policy-item>.icon { color:var(--green); width:19px; height:19px; flex-basis:19px; margin-top:2px; }
.policy-item strong { display:block; font-size:12px; font-weight:600; }
.policy-item p { color:var(--muted); font-size:11px; line-height:1.8; margin-top:3px; }
.sidebar-divider { border:0; border-top:1px solid var(--line); margin:23px 0; }
.sidebar-link { display:flex; align-items:center; justify-content:space-between; width:100%; gap:12px; margin-top:11px; min-height:35px; padding:0; text-align:left; font-size:12px; color:#5f7366; background:none; }
.sidebar-link:hover { color:var(--deep); }
.sidebar-link .icon { width:15px; height:15px; flex-basis:15px; }
.faq { border-top:1px solid var(--line); padding-top:18px; margin-top:23px; }
.faq-item + .faq-item { margin-top:15px; }
.faq-item h4 { margin:0; color:#526b5c; font-size:12px; font-weight:600; }
.faq p { padding-block:5px 10px; color:var(--muted); font-size:11px; line-height:1.8; }
.list-end { display:flex; align-items:center; justify-content:center; gap:8px; margin:10px 0 0; color:#99a39c; font-size:11px; min-height:28px; }
.list-end .icon { width:14px; height:14px; flex-basis:14px; }
.empty-state { background:#fff; border:1px solid var(--line); border-radius:8px; text-align:center; padding:45px 20px; }
.empty-state>.icon { width:30px; height:30px; color:#9db7a8; margin-bottom:12px; }
.empty-state h3 { font-size:16px; font-weight:600; }
.empty-state p { color:var(--muted); font-size:12px; margin-top:7px; }
.empty-state button { margin-top:17px; }
.mobile-facts { display:none; }
.publish-heading-note { color:var(--muted); font-size:12px; margin-top:6px; }
.publish-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:48px; align-items:start; margin-top:25px; }
.publish-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px; }
.wide { grid-column:1/-1; }
fieldset { min-width:0; padding:0; border:0; margin:0; }
legend { color:#67756d; font-size:12px; font-weight:600; padding:0; margin-bottom:8px; }
.subject-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.subject-option { display:flex; align-items:center; justify-content:flex-start; gap:9px; padding:10px 12px; min-height:44px; background:#fff; border:1px solid var(--line); border-radius:6px; cursor:pointer; }
.subject-option:has(input:checked) { background:var(--mint); border-color:#78c1a0; color:var(--deep); }
.subject-option:has(input:disabled) { opacity:.45; cursor:not-allowed; }
input[type=checkbox] { width:16px; height:16px; min-height:16px; padding:0; margin:0; accent-color:var(--green); flex:0 0 16px; }
.subject-count { color:var(--muted); font-size:11px; margin-top:7px; }
textarea { min-height:96px; resize:vertical; }
.consent { display:flex; gap:9px; align-items:flex-start; color:var(--muted); font-size:11px; }
.consent input { margin-top:3px; }
.consent a { color:var(--deep); text-decoration:underline; text-underline-offset:3px; }
.form-actions { display:flex; align-items:center; gap:14px; border-top:1px solid var(--line); padding-top:20px; }
.form-actions .privacy-mini { color:#8a968e; font-size:11px; }
.form-actions .privacy-mini .icon { width:14px; height:14px; }
.preview-aside { position:sticky; top:100px; }
.preview-eyebrow { color:#7d8e81; font-size:12px; margin-bottom:12px; display:flex; gap:7px; align-items:center; }
.preview-eyebrow .icon { width:16px; height:16px; }
.preview-card { background:#fff; padding:24px; border:1px solid #d8e9de; border-radius:8px; }
.tag { display:inline-flex; align-items:center; gap:5px; padding:3px 8px; color:var(--deep); background:var(--mint); border-radius:4px; font-size:10px; }
.preview-card h3 { font-size:21px; font-weight:650; line-height:1.5; margin-top:14px; }
.preview-area { color:var(--muted); font-size:12px; margin-top:5px; display:flex; align-items:center; gap:4px; }
.preview-area .icon { width:14px; height:14px; }
.preview-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; padding-block:20px; margin-block:20px; border-block:1px solid var(--line); }
.preview-facts dt { color:#8e9a92; font-size:11px; margin-bottom:3px; }
.preview-facts dd { margin:0; font-size:13px; }
.preview-time { color:#788a7c; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.preview-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:22px; }
.preview-bottom .pay { min-width:0; white-space:normal; overflow-wrap:anywhere; font-size:20px; line-height:1.5; }
.preview-bottom .pay small { display:inline; font-size:11px; margin-left:4px; }
.preview-bottom>.icon { color:var(--green); }
.preview-note { margin-top:13px; padding-left:2px; color:#8d9990; font-size:11px; display:flex; align-items:center; gap:6px; }
.preview-note .icon { width:14px; height:14px; }
.footer { border-top:1px solid var(--line); background:#fff; padding-block:24px 20px; color:#87928b; font-size:11px; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.footer-brand { display:flex; align-items:center; gap:10px; color:#718278; font-size:12px; }
.footer-brand .brand-icon svg { width:31px; height:31px; }
.footer .footer-links { display:flex; align-items:center; gap:22px; flex-wrap:wrap; font-size:12px; }
.footer-links>a,.footer-links>button { display:inline-flex; align-items:center; min-height:44px; padding:0; color:inherit; font:inherit; background:none; border:0; }
.footer a:hover { color:var(--deep); }
.filings { display:flex; gap:20px; flex-wrap:wrap; border-top:1px solid #f0f3f1; margin-top:19px; padding-top:15px; font-size:10px; }
.police { display:inline-flex; align-items:center; gap:5px; flex-shrink:0; white-space:nowrap; }
.police img { width:14px; height:14px; }
dialog { color:var(--ink); border:1px solid #e4ebe6; border-radius:8px; padding:0; width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow-y:auto; overscroll-behavior:contain; background:#fff; box-shadow:0 20px 90px #1a3c302b; }
body:has(dialog[open]) { overflow:hidden; }
#detailDialog { overflow:hidden; }
#detailBody { display:flex; flex-direction:column; min-height:0; max-height:calc(100dvh - 112px); }
#detailBody .dialog-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
dialog::backdrop { background:#18362a66; backdrop-filter:blur(3px); }
dialog[open] { animation:dialog-in .18s ease-out; }
.dialog-header { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; padding:16px 22px; border-bottom:1px solid var(--line); }
.dialog-header h2 { font-size:17px; }
.dialog-header .icon-button { width:40px; height:40px; flex-basis:40px; border:0; }
.dialog-body { padding:24px; }
.dialog-body h3 { font-size:22px; font-weight:650; line-height:1.5; }
.dialog-body p { margin-top:11px; color:var(--muted); font-size:13px; line-height:1.9; overflow-wrap:anywhere; }
.dialog-body>.brand-icon { margin-bottom:16px; }
.dialog-body>.brand-icon svg { width:64px; height:64px; }
.detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0 0; }
.detail-facts dt { font-size:11px; color:#8a978f; }
.detail-facts dd { font-size:13px; margin:3px 0 0; overflow-wrap:anywhere; }
.detail-extra { margin-top:21px; padding-top:18px; border-top:1px solid var(--line); }
.detail-extra h4 { margin:0 0 5px; font-size:12px; font-weight:600; }
.detail-extra p { font-size:12px; margin-top:4px; }
.dialog-footer { padding:16px 24px; border-top:1px solid var(--line); display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:16px; }
.dialog-footer .pay small { display:inline; margin-left:5px; }
.dialog-body .button { margin-top:22px; }
.toast { position:fixed; z-index:80; bottom:25px; left:50%; transform:translate(-50%,12px); width:max-content; max-width:calc(100% - 32px); padding:11px 17px; background:#233e30; color:white; font-size:12px; border-radius:6px; opacity:0; pointer-events:none; transition:opacity .18s,transform .18s; box-shadow:0 5px 20px #173f2c22; }
.toast.show { opacity:1; transform:translate(-50%,0); }
@keyframes dialog-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@media(min-width:1600px) { .wrap { width:1280px; } .hero-inner { padding-block:43px; } .course-layout { grid-template-columns:minmax(0,1fr) 270px; gap:36px; } }
@media(max-width:1000px) { .topbar-inner { gap:20px; } .topnav { margin-left:0; gap:20px; } .header-actions { gap:14px; } .course-layout { grid-template-columns:minmax(0,1fr) 220px; gap:23px; } .course-card { grid-template-columns:36px minmax(0,1fr) 86px; padding:18px; gap:11px; } .subject-mark { width:36px; height:36px; } .course-card h3 { font-size:17px; } .sidebar { padding-left:20px; } .publish-layout { grid-template-columns:minmax(0,1fr) 295px; gap:27px; } }
@media(max-width:800px) { .wrap { width:calc(100% - 36px); } .topbar-inner { min-height:68px; } .topnav { gap:18px; } .header-actions .feedback-action { display:none; } .service-strip { display:none; } .course-layout { grid-template-columns:minmax(0,1fr); gap:0; } .sidebar { position:static; border-left:0; padding-left:0; border-top:1px solid var(--line); margin-top:26px; padding-top:24px; } .sidebar-policies { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; } .policy-item { margin-bottom:10px; } .sidebar-divider { margin:15px 0; } .mobile-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:24px; padding-block:20px; border-top:1px solid var(--line); } .mobile-facts strong { display:block; color:#5a7463; font-size:13px; } .mobile-facts small { display:block; margin-top:3px; color:#91a096; font-size:10px; } .publish-layout { grid-template-columns:minmax(0,1fr) 280px; gap:24px; } .preview-card { padding:20px; } }
@media(max-width:620px) { .wrap { width:calc(100% - 32px); } .topbar-inner { min-height:64px; gap:10px; } .brand { gap:8px; } .brand-icon svg { width:37px; height:37px; } .brand strong { font-size:15px; } .brand small { font-size:10px; } .topnav { display:none; } .header-actions { gap:10px; } .login-action { font-size:12px; gap:4px; } .login-action .icon { width:17px; height:17px; flex-basis:17px; } .header-actions .feedback-action { display:inline-flex; font-size:12px; } .hero-inner { padding-block:22px 24px; } .hero-photo { object-position:62% 60%; } .hero::after { background:#ffffff3d; } .hero h1 { font-size:28px; margin-top:8px; } .hero-copy { font-size:12px; margin-top:7px; max-width:290px; } .hero-actions { margin-top:19px; gap:9px; } .hero-actions .button { min-width:0; flex:1; padding:11px 9px; font-size:13px; } .hero-actions .button .icon { width:17px; height:17px; flex-basis:17px; } .workspace { padding-top:23px; } .workspace-heading { margin-bottom:17px; } .heading-title { gap:8px; align-items:baseline; } h2 { font-size:21px; } .result-count { font-size:10px; } .heading-action { font-size:11px; gap:4px; } .heading-action .icon { width:15px; height:15px; flex-basis:15px; } .filterbar { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 12px; padding-bottom:18px; } .field-label { font-size:11px; margin-bottom:5px; } select,input,textarea { font-size:12px; min-height:42px; padding:10px; } .search-box input { padding-left:35px; } .search-box .icon { left:11px; } .search-row { gap:9px; } .course-layout { margin-top:18px; } .course-card { grid-template-columns:35px minmax(0,1fr); gap:11px; padding:17px 15px 15px; } .subject-mark { width:35px; height:35px; border-radius:6px; } .subject-mark .icon { width:20px; height:20px; } .course-card h3 { font-size:17px; margin-top:2px; } .course-kicker { font-size:10px; } .course-facts { gap:8px; margin-top:12px; } .course-facts dt { font-size:10px; } .course-facts dd { font-size:11px; } .schedule { margin-top:10px; font-size:11px; } .course-side { grid-column:1/-1; flex-direction:row; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px solid #f0f3f1; gap:10px; } .pay { font-size:21px; } .pay small { display:inline; margin-left:4px; } .detail-button { min-height:36px; padding:8px 11px; } .mobile-facts { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:16px; padding-block:20px 0; } .mobile-facts>div { display:flex; gap:8px; align-items:baseline; } .mobile-facts small { margin:0; } .sidebar-policies { grid-template-columns:minmax(0,1fr); gap:12px; } .policy-item { margin-bottom:0; } .sidebar h3 { font-size:14px; } .policy-item p { margin-top:2px; } .sidebar-divider { margin:20px 0 10px; } .sidebar-link { min-height:39px; } .publish-layout { grid-template-columns:minmax(0,1fr); gap:28px; } .publish-form { gap:15px 12px; } .subject-option { padding:9px; gap:7px; font-size:12px; } .form-actions { flex-wrap:wrap; gap:10px; } .form-actions .button { width:100%; } .form-actions .privacy-mini { margin-inline:auto; } .preview-aside { position:static; } .footer-top { align-items:flex-start; flex-direction:column; gap:18px; } .footer-links { gap:18px; font-size:11px; } .filings { gap:10px; flex-direction:column; } .dialog-body { padding:20px; } .dialog-footer { padding:15px 20px; } }
@media(max-width:620px) { select,input,textarea { min-height:46px; font-size:16px; } input[type=checkbox] { min-height:16px; } .search-box .icon { top:14px; } .search-row>.icon-button { width:46px; height:46px; flex-basis:46px; } .course-facts dd,.schedule { font-size:12px; } .course-side { padding-top:12px; } .detail-button { min-height:44px; } .heading-title { flex-wrap:wrap; row-gap:2px; } .preview-facts { gap:16px; } .dialog-footer .button { padding-inline:13px; } .footer-links { width:100%; gap:20px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }
@media(max-width:620px) { .hero-actions .button { flex:1 1 100%; } .hero-actions { flex-wrap:wrap; } select { padding-right:38px; } }
@media(forced-colors:active) { select { appearance:auto; background-image:none; } }

.brand-icon img { display:block; width:44px; height:44px; }
.footer-brand .brand-icon img { width:31px; height:31px; }
.police img { flex:0 0 14px; }
.course-kicker { flex-wrap:wrap; }
.verified-label { font-size:10px; color:#718579; }
.course-facts dd,.schedule span { overflow-wrap:anywhere; }
.course-list.is-updating { opacity:.65; }
.login-gate { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,1fr); gap:30px; padding-block:22px; margin-bottom:22px; border-block:1px solid var(--line); }
.login-gate h3 { margin:10px 0 6px; font-size:18px; }
.login-gate p { color:var(--muted); font-size:12px; }
.login-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; }
.login-form label>span { display:block; margin-bottom:6px; font-size:12px; color:#67756d; }
.login-form button { min-height:43px; padding:10px 13px; border:1px solid var(--green); border-radius:6px; background:var(--green); color:#fff; font-size:12px; }
.login-form .sms-send-button { background:var(--mint); color:var(--deep); border-color:#d7e8df; }
.login-form .auth-consent { grid-column:1/-1; margin:0; font-size:11px; color:var(--muted); }
.auth-consent a { color:var(--deep); text-decoration:underline; }
.auth-options { display:flex; gap:4px; padding:4px; margin-bottom:22px; border-radius:6px; background:#f0f5f2; }
.auth-options button { flex:1; min-height:40px; padding:8px; border-radius:4px; background:none; color:var(--muted); }
.auth-options button[aria-pressed=true] { background:#fff; color:var(--deep); box-shadow:0 1px 4px #203c3012; }
.auth-error,.publish-feedback { padding:10px 12px; border:1px solid #ead0ce; border-radius:6px; background:#fff5f4; color:#9a4641; font-size:12px; }
.auth-error.is-success { border-color:#c9e2d3; background:var(--mint); color:var(--deep); }
.login-form.has-error input { border-color:#cc7870; }
.publish-receipt { padding:24px; border:1px solid #c9e2d3; border-radius:8px; background:#fff; }
.publish-receipt h3 { font-size:20px; margin:12px 0; }
.publish-receipt p { margin-bottom:10px; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.publish-receipt button { margin-top:12px; }
.preview-card.pop { animation:dialog-in .18s ease-out; }
.noscript-message { padding:20px; text-align:center; color:var(--muted); }
@media(max-width:800px) { .login-gate { grid-template-columns:minmax(0,1fr); gap:18px; } }
@media(max-width:620px) { .brand-icon img { width:37px; height:37px; } .login-form button { min-height:46px; } .header-actions { gap:9px; } .header-actions .logout-action { width:32px; min-height:44px; } .login-action { max-width:120px; white-space:normal; } .faq-item h4 { font-size:13px; } .faq-item p { font-size:12px; } }
