:root { --hulu-ink: #17211b; --hulu-green: #196548; --hulu-green-dark: #124d37; --hulu-lime: #cce85b; --hulu-paper: #f3f1e9; --hulu-panel: #fffefa; --hulu-line: #dfe2da; --hulu-muted: #6b756e; --primary: #196548; --secondary: #17211b; --accent: #cce85b; --header-bg: #17211b; --header-color: #ffffff; --breadcrumbs-bg: #235f47; --breadcrumbs-link-fg: #f3f1e9; --link-fg: #196548; --link-hover-color: #124d37; --button-bg: #196548; --button-hover-bg: #124d37; --default-button-bg: #17211b; --default-button-hover-bg: #2c3931; } body { background: var(--hulu-paper); color: var(--hulu-ink); } #header { min-height: 70px; padding: 0 28px; background: radial-gradient(circle at 80% -30%, rgba(204, 232, 91, .16), transparent 35%), var(--hulu-ink); box-sizing: border-box; } #branding { display: flex; align-items: center; } .hulu-brand { display: flex; align-items: center; gap: 12px; } .hulu-brand-mark { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: var(--hulu-lime); color: var(--hulu-ink) !important; font: 700 22px Georgia, serif; text-decoration: none; } .hulu-brand-name { display: block; color: white !important; font-size: 17px; font-weight: 700; letter-spacing: .06em; text-decoration: none; } .hulu-brand span { display: block; margin-top: 2px; color: #aeb9b1; font-size: 10px; letter-spacing: .13em; } .hulu-global-nav { display: flex; align-items: center; gap: 14px; } .hulu-global-nav a { padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 9px; color: white !important; text-decoration: none; } .hulu-environment { padding: 5px 9px; border-radius: 99px; background: rgba(204, 232, 91, .12); color: var(--hulu-lime); font-size: 10px; letter-spacing: .08em; } #user-tools { color: #aeb9b1; } #user-tools a { color: white; } div.breadcrumbs { padding: 13px 30px; } #content { padding: 30px; } #content h1 { font-family: Georgia, "Songti SC", serif; font-weight: 500; } #nav-sidebar { border-right: 1px solid var(--hulu-line); background: #ebeae3; } #nav-sidebar .current-app .section, #nav-sidebar .current-model { background: rgba(25, 101, 72, .1); } .module, .inline-group { overflow: hidden; border: 1px solid var(--hulu-line); border-radius: 14px; background: var(--hulu-panel); box-shadow: 0 8px 30px rgba(23, 33, 27, .04); } .module h2, .module caption, .inline-group h2 { background: var(--hulu-ink); } #changelist-filter { border-left: 1px solid var(--hulu-line); background: #f8f7f1; } #changelist .actions { padding: 12px; border-radius: 10px; background: #e9eee8; } input, textarea, select, .vTextField { border-color: #ccd2ca !important; border-radius: 8px !important; } input:focus, textarea:focus, select:focus { border-color: var(--hulu-green) !important; box-shadow: 0 0 0 3px rgba(25, 101, 72, .1); outline: none; } .button, input[type=submit], input[type=button], .submit-row input, a.button { border-radius: 9px; } .object-tools a { border-radius: 9px; background: var(--hulu-green); } .hulu-dashboard #content { max-width: 1550px; margin: auto; } .hulu-dashboard-head { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 24px; padding: 32px 36px; overflow: hidden; border-radius: 20px; background: radial-gradient(circle at 88% 30%, rgba(204, 232, 91, .17), transparent 25%), var(--hulu-ink); color: white; } .hulu-eyebrow { color: var(--hulu-green); font-size: 9px; font-weight: 700; letter-spacing: .2em; } .hulu-dashboard-head .hulu-eyebrow { color: var(--hulu-lime); } .hulu-dashboard-head h1 { margin: 12px 0 8px; color: white; font: 500 clamp(30px, 4vw, 48px)/1.1 Georgia, "Songti SC", serif; } .hulu-dashboard-head p { margin: 0; color: #b9c2bc; font-size: 13px; } .hulu-head-actions { display: flex; flex-wrap: wrap; gap: 9px; } .hulu-button { display: inline-block; padding: 11px 16px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 10px; color: white !important; text-decoration: none; } .hulu-button.primary { border-color: var(--hulu-lime); background: var(--hulu-lime); color: var(--hulu-ink) !important; font-weight: 700; } .hulu-metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-bottom: 26px; } .hulu-metric { position: relative; overflow: hidden; min-height: 125px; padding: 20px; border: 1px solid var(--hulu-line); border-radius: 16px; background: var(--hulu-panel); } .hulu-metric::after { position: absolute; width: 70px; height: 70px; right: -25px; top: -25px; border-radius: 50%; background: var(--metric-color); content: ""; opacity: .16; } .hulu-metric.green { --metric-color: #2f936c; } .hulu-metric.blue { --metric-color: #5d73e8; } .hulu-metric.orange { --metric-color: #dc823c; } .hulu-metric.purple { --metric-color: #8667b5; } .hulu-metric span, .hulu-metric strong, .hulu-metric small { display: block; } .hulu-metric span { color: var(--hulu-muted); font-size: 11px; } .hulu-metric strong { margin: 10px 0 6px; color: var(--hulu-ink); font: 34px Georgia, serif; } .hulu-metric small { color: #8b938e; } .hulu-dashboard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 20px; } .hulu-section-title { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 14px; } .hulu-section-title h2 { margin: 5px 0 0; color: var(--hulu-ink); font: 25px Georgia, "Songti SC", serif; } .hulu-section-title > span { color: var(--hulu-muted); font-size: 11px; } .hulu-section-title.compact h2 { font-size: 20px; } .hulu-app-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .hulu-app-card, .hulu-side-card { overflow: hidden; border: 1px solid var(--hulu-line); border-radius: 16px; background: var(--hulu-panel); } .hulu-app-card header { display: flex; align-items: center; gap: 12px; padding: 18px; border-bottom: 1px solid var(--hulu-line); } .hulu-app-icon { display: grid; flex: 0 0 auto; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: rgba(25, 101, 72, .1); color: var(--hulu-green); font: 700 17px Georgia, serif; } .module-contest .hulu-app-icon { background: rgba(220, 130, 60, .12); color: #a45d27; } .module-content .hulu-app-icon { background: rgba(93, 115, 232, .1); color: #4d60c2; } .module-latex_lab .hulu-app-icon { background: rgba(134, 103, 181, .1); color: #7655a8; } .hulu-app-card h3 { margin: 0; font-size: 15px; } .hulu-app-card h3 a { color: var(--hulu-ink); text-decoration: none; } .hulu-app-card header span { display: block; margin-top: 4px; color: var(--hulu-muted); font-size: 10px; } .hulu-model-list { padding: 5px 16px 12px; } .hulu-model-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 39px; border-bottom: 1px solid #edeee8; } .hulu-model-row:last-child { border-bottom: 0; } .hulu-model-row > a, .hulu-model-row > span { color: #334039; font-size: 12px; text-decoration: none; } .hulu-model-row > div { display: flex; gap: 8px; } .hulu-add-link, .hulu-view-link { font-size: 10px; text-decoration: none; } .hulu-add-link { color: var(--hulu-green); } .hulu-view-link { color: #7d8680; } .hulu-dashboard-side { display: grid; align-content: start; gap: 14px; } .hulu-side-card { padding: 18px; } .hulu-alert-row { display: flex; align-items: center; justify-content: space-between; min-height: 42px; border-bottom: 1px solid #edeee8; color: #334039; text-decoration: none; } .hulu-alert-row strong { display: grid; min-width: 29px; height: 25px; padding: 0 5px; place-items: center; border-radius: 99px; background: #f0e5dc; color: #a65034; } .hulu-quick-links { display: grid; gap: 7px; } .hulu-quick-links a { padding: 10px 12px; border-radius: 9px; background: #f1f3ed; color: #334039; text-decoration: none; } .hulu-quick-links a:hover { background: #e4ebe3; color: var(--hulu-green); } .hulu-recent-list { display: grid; gap: 12px; } .hulu-recent-row { display: flex; gap: 9px; } .hulu-action-dot { flex: 0 0 auto; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: #d46c55; } .hulu-action-dot.add { background: #45a879; } .hulu-action-dot.change { background: #6480d0; } .hulu-recent-row a, .hulu-recent-row strong { color: #334039; font-size: 11px; text-decoration: none; } .hulu-recent-row small { display: block; margin-top: 3px; color: #909791; font-size: 9px; } .hulu-muted, .hulu-empty { color: var(--hulu-muted); } .hulu-empty { padding: 35px; border: 1px dashed #c8cdc6; border-radius: 14px; text-align: center; } .hulu-admin-login { background: radial-gradient(circle at 12% 20%, rgba(204, 232, 91, .12), transparent 28%), var(--hulu-paper); } .hulu-admin-login #header { background: transparent; } .hulu-admin-login #branding .hulu-brand-name, .hulu-admin-login #branding .hulu-brand span { color: var(--hulu-ink) !important; } .hulu-admin-login #content { max-width: 1040px; margin: 4vh auto 0; } .hulu-login-shell { display: grid; grid-template-columns: 1.1fr .9fr; overflow: hidden; min-height: 535px; border: 1px solid var(--hulu-line); border-radius: 24px; background: var(--hulu-panel); box-shadow: 0 30px 80px rgba(23, 33, 27, .12); } .hulu-login-intro { padding: 60px; background: radial-gradient(circle at 75% 80%, rgba(204, 232, 91, .15), transparent 30%), var(--hulu-ink); color: white; } .hulu-login-intro .hulu-eyebrow { color: var(--hulu-lime); } .hulu-login-intro h1 { max-width: 380px; margin: 28px 0 20px; color: white; font: 500 48px/1.08 Georgia, "Songti SC", serif; } .hulu-login-intro p { max-width: 430px; color: #b9c2bc; line-height: 1.8; } .hulu-login-points { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 55px; } .hulu-login-points span { padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 99px; color: #d5dbd7; font-size: 10px; } .hulu-login-card { display: flex; flex-direction: column; justify-content: center; padding: 50px; } .hulu-login-card h2 { margin: 8px 0; color: var(--hulu-ink); font: 30px Georgia, "Songti SC", serif; } .hulu-login-card > div > p { margin: 0 0 25px; color: var(--hulu-muted); } .hulu-login-card .form-row { padding: 0 0 18px; } .hulu-login-card .form-row label { display: block; margin-bottom: 7px; color: #47534c; font-weight: 600; } .hulu-login-card .form-row input { width: 100%; box-sizing: border-box; padding: 13px; } .hulu-login-card .submit-row { padding: 0; background: transparent; } .hulu-login-card .submit-row input { width: 100%; padding: 13px; font-weight: 700; } .hulu-back-site { margin-top: 22px; color: var(--hulu-muted); text-align: center; text-decoration: none; } @media (max-width: 1100px) { .hulu-dashboard-layout { grid-template-columns: 1fr; } .hulu-dashboard-side { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 800px) { #header { padding: 10px 16px; } #content { padding: 18px; } .hulu-global-nav, .hulu-environment { display: none; } .hulu-dashboard-head { display: block; padding: 26px; } .hulu-head-actions { margin-top: 20px; } .hulu-metric-grid, .hulu-app-grid, .hulu-dashboard-side { grid-template-columns: 1fr 1fr; } .hulu-login-shell { grid-template-columns: 1fr; } .hulu-login-intro { display: none; } } @media (max-width: 520px) { .hulu-metric-grid, .hulu-app-grid, .hulu-dashboard-side { grid-template-columns: 1fr; } .hulu-model-row { align-items: start; padding: 9px 0; } .hulu-login-card { padding: 30px 24px; } }