Spaces:
Running
Running
| /* ============================================================================ | |
| console.css — killinchu JACK-IN mission console (Dev 1) | |
| Navy #06122E + coral #E07A5F · glassmorphic · WCAG-AA · responsive | |
| 0 runtime CDN (system font stack only). prefers-reduced-motion respected. | |
| ========================================================================== */ | |
| :root { | |
| /* core palette */ | |
| --navy-900: #040C1F; | |
| --navy-800: #06122E; /* base bg */ | |
| --navy-700: #0A1B40; | |
| --navy-600: #102554; | |
| --coral: #E07A5F; | |
| --coral-200:#F2A48C; | |
| --coral-700:#B85638; | |
| /* glass surfaces */ | |
| --glass: rgba(18, 38, 78, 0.55); | |
| --glass-strong: rgba(20, 42, 86, 0.78); | |
| --glass-border: rgba(224, 122, 95, 0.22); | |
| --hairline: rgba(190, 210, 255, 0.12); | |
| /* text — tuned for AA on navy */ | |
| --ink: #EAF0FB; /* ~14:1 on navy-800 */ | |
| --ink-mut: #A9B8D6; /* ~6.3:1 */ | |
| --ink-fnt: #7E8FB3; /* labels only, large/secondary */ | |
| /* semantic */ | |
| --live: #54D6A0; /* green — LIVE */ | |
| --sample: #F2C14E; /* amber — SAMPLE */ | |
| --danger: #E06C75; | |
| --ok: #54D6A0; | |
| --r-lg: 16px; | |
| --r-md: 12px; | |
| --r-sm: 8px; | |
| --shadow: 0 10px 40px rgba(0,0,0,0.45); | |
| --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; | |
| --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace; | |
| } | |
| * { box-sizing: border-box; } | |
| html, body { | |
| margin: 0; | |
| background: | |
| radial-gradient(1200px 800px at 80% -10%, rgba(224,122,95,0.10), transparent 60%), | |
| radial-gradient(900px 700px at -10% 110%, rgba(36,86,180,0.18), transparent 55%), | |
| var(--navy-800); | |
| color: var(--ink); | |
| font-family: var(--font); | |
| font-size: 16px; | |
| line-height: 1.55; | |
| -webkit-font-smoothing: antialiased; | |
| min-height: 100vh; | |
| } | |
| body { | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 100vh; | |
| } | |
| h1, h2, h3 { margin: 0; line-height: 1.2; } | |
| :focus-visible { outline: 2px solid var(--coral-200); outline-offset: 2px; border-radius: 4px; } | |
| /* ===================== HEADER ===================== */ | |
| .jk-header { | |
| display: flex; align-items: center; justify-content: space-between; | |
| gap: 16px; | |
| padding: 14px clamp(16px, 4vw, 36px); | |
| background: linear-gradient(180deg, rgba(6,18,46,0.92), rgba(6,18,46,0.62)); | |
| backdrop-filter: blur(14px); | |
| -webkit-backdrop-filter: blur(14px); | |
| border-bottom: 1px solid var(--glass-border); | |
| position: sticky; top: 0; z-index: 20; | |
| } | |
| .jk-brand { display: flex; align-items: center; gap: 12px; min-width: 0; } | |
| .jk-eagle { width: 40px; height: 40px; flex: none; filter: drop-shadow(0 2px 8px rgba(224,122,95,0.35)); } | |
| .jk-brand-text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; } | |
| .jk-brand-name { font-weight: 800; letter-spacing: 0.04em; font-size: 18px; } | |
| .jk-brand-sub { font-size: 12px; color: var(--ink-mut); letter-spacing: 0.14em; text-transform: uppercase; } | |
| .jk-status { display: flex; align-items: center; gap: 12px; flex: none; } | |
| .jk-link { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-mut); font-family: var(--mono); letter-spacing: 0.06em; } | |
| .jk-link-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; } | |
| .jk-link-dot.is-down { background: #50617f; box-shadow: 0 0 0 3px rgba(80,97,127,0.18); } | |
| .jk-link-dot.is-up { background: var(--live); box-shadow: 0 0 0 3px rgba(84,214,160,0.22); animation: jkpulse 2s ease-in-out infinite; } | |
| @keyframes jkpulse { 0%,100%{opacity:1} 50%{opacity:.45} } | |
| .jk-pill { | |
| font-size: 11px; font-weight: 800; letter-spacing: 0.12em; | |
| padding: 4px 10px; border-radius: 999px; text-transform: uppercase; | |
| } | |
| .jk-pill.is-live { background: rgba(84,214,160,0.16); color: var(--live); border: 1px solid rgba(84,214,160,0.5); } | |
| .jk-pill.is-sample { background: rgba(242,193,78,0.14); color: var(--sample);border: 1px solid rgba(242,193,78,0.5); } | |
| /* ===================== TABS ===================== */ | |
| .jk-tabs { | |
| display: flex; gap: 4px; overflow-x: auto; | |
| padding: 10px clamp(12px, 4vw, 36px); | |
| border-bottom: 1px solid var(--hairline); | |
| scrollbar-width: thin; | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| .jk-tab { | |
| appearance: none; border: 0; cursor: pointer; white-space: nowrap; | |
| background: transparent; color: var(--ink-mut); | |
| font: inherit; font-weight: 700; font-size: 13px; letter-spacing: 0.06em; | |
| padding: 9px 14px; border-radius: var(--r-sm); | |
| transition: background .15s ease, color .15s ease; | |
| } | |
| .jk-tab:hover { color: var(--ink); background: rgba(255,255,255,0.04); } | |
| .jk-tab.is-active { color: var(--navy-900); background: var(--coral); box-shadow: 0 4px 16px rgba(224,122,95,0.4); } | |
| .jk-tab-tag { | |
| font-size: 9px; font-weight: 800; padding: 1px 5px; border-radius: 4px; | |
| background: rgba(242,193,78,0.2); color: var(--sample); margin-left: 2px; letter-spacing: 0.08em; | |
| } | |
| .jk-tab.is-active .jk-tab-tag { background: rgba(6,18,46,0.25); color: var(--navy-900); } | |
| /* ===================== MAIN / PANELS ===================== */ | |
| .jk-main { flex: 1; padding: clamp(16px, 3.5vw, 36px); max-width: 1500px; width: 100%; margin: 0 auto; } | |
| .jk-panel { animation: jkfade .25s ease; } | |
| .jk-panel[hidden] { display: none; } | |
| @keyframes jkfade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } } | |
| .jk-panel-head { margin-bottom: 22px; } | |
| .jk-h1 { font-size: clamp(26px, 5vw, 40px); font-weight: 800; letter-spacing: -0.01em; } | |
| .jk-h2 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-mut); margin-bottom: 12px; } | |
| .jk-lede { color: var(--ink-mut); max-width: 60ch; margin: 8px 0 0; font-size: 16px; } | |
| .jk-panel-placeholder { | |
| border: 1px dashed var(--glass-border); border-radius: var(--r-lg); | |
| padding: 40px; color: var(--ink-fnt); text-align: center; font-family: var(--mono); font-size: 13px; | |
| background: var(--glass); | |
| } | |
| /* ===================== BANNERS ===================== */ | |
| .jk-banner { border-radius: var(--r-md); padding: 12px 16px; font-size: 14px; margin-bottom: 18px; border: 1px solid; } | |
| .jk-banner-warn { background: rgba(242,193,78,0.10); border-color: rgba(242,193,78,0.4); color: #F4D58A; } | |
| /* ===================== CONNECT GRID ===================== */ | |
| .jk-connect-grid { | |
| display: grid; gap: 14px; | |
| grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); | |
| margin-bottom: 26px; | |
| } | |
| .jk-connect-card { | |
| position: relative; text-align: left; cursor: pointer; | |
| background: var(--glass); border: 1px solid var(--glass-border); | |
| border-radius: var(--r-lg); padding: 18px; color: var(--ink); | |
| backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); | |
| transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; | |
| display: flex; flex-direction: column; gap: 8px; min-height: 132px; | |
| font: inherit; appearance: none; | |
| } | |
| .jk-connect-card:hover:not([disabled]) { transform: translateY(-3px); border-color: var(--coral); box-shadow: var(--shadow); } | |
| .jk-connect-card[disabled] { opacity: 0.5; cursor: not-allowed; } | |
| .jk-connect-card .jk-cc-icon { font-size: 22px; } | |
| .jk-connect-card .jk-cc-title { font-weight: 800; font-size: 16px; letter-spacing: 0.02em; } | |
| .jk-connect-card .jk-cc-desc { font-size: 12.5px; color: var(--ink-mut); line-height: 1.4; } | |
| .jk-connect-card .jk-cc-note { font-size: 11px; color: var(--sample); margin-top: auto; } | |
| .jk-cc-cap { | |
| position: absolute; top: 12px; right: 12px; font-size: 10px; font-weight: 800; | |
| letter-spacing: 0.08em; padding: 3px 7px; border-radius: 999px; text-transform: uppercase; | |
| } | |
| .jk-cc-cap.ok { background: rgba(84,214,160,0.16); color: var(--live); } | |
| .jk-cc-cap.no { background: rgba(224,108,117,0.16); color: var(--danger); } | |
| .jk-cc-cap.sample{ background: rgba(242,193,78,0.16); color: var(--sample); } | |
| .jk-connect-card.is-active { border-color: var(--live); box-shadow: 0 0 0 1px var(--live), var(--shadow); } | |
| /* ===================== CONNECT STATUS / LOG ===================== */ | |
| .jk-connect-status { display: grid; gap: 16px; grid-template-columns: minmax(260px, 1fr) minmax(260px, 1.4fr); } | |
| .jk-card { | |
| background: var(--glass-strong); border: 1px solid var(--hairline); | |
| border-radius: var(--r-lg); padding: 18px; | |
| backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); | |
| } | |
| .jk-kv { margin: 0; display: grid; gap: 10px; } | |
| .jk-kv > div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--hairline); padding-bottom: 8px; } | |
| .jk-kv > div:last-child { border-bottom: 0; padding-bottom: 0; } | |
| .jk-kv dt { color: var(--ink-mut); font-size: 13px; } | |
| .jk-kv dd { margin: 0; font-family: var(--mono); font-size: 13px; text-align: right; color: var(--ink); } | |
| .jk-kv dd.is-live { color: var(--live); } | |
| .jk-log { | |
| margin: 0; padding: 0; list-style: none; font-family: var(--mono); font-size: 12.5px; | |
| max-height: 280px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; | |
| } | |
| .jk-log li { color: var(--ink-mut); padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,0.04); } | |
| .jk-log li .t { color: var(--ink-fnt); margin-right: 8px; } | |
| .jk-log li.ok { color: var(--ok); } | |
| .jk-log li.warn { color: var(--sample); } | |
| .jk-log li.err { color: var(--danger); } | |
| /* ===================== BUTTONS ===================== */ | |
| .jk-btn { | |
| appearance: none; border: 1px solid transparent; cursor: pointer; font: inherit; font-weight: 700; | |
| padding: 9px 16px; border-radius: var(--r-sm); transition: background .15s ease, border-color .15s ease; | |
| } | |
| .jk-btn-ghost { background: transparent; border-color: var(--glass-border); color: var(--ink); margin-top: 14px; } | |
| .jk-btn-ghost:hover { border-color: var(--danger); color: var(--danger); } | |
| /* ===================== FOOTER ===================== */ | |
| .jk-footer { | |
| display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; align-items: center; | |
| padding: 12px clamp(16px, 4vw, 36px); | |
| border-top: 1px solid var(--hairline); | |
| font-size: 11.5px; color: var(--ink-fnt); font-family: var(--mono); letter-spacing: 0.04em; | |
| } | |
| .jk-footer .jk-posture strong { color: var(--sample); } | |
| /* ===================== RESPONSIVE ===================== */ | |
| @media (max-width: 860px) { | |
| .jk-connect-status { grid-template-columns: 1fr; } | |
| } | |
| @media (max-width: 560px) { | |
| .jk-brand-sub { display: none; } | |
| .jk-connect-grid { grid-template-columns: 1fr 1fr; } | |
| .jk-footer { flex-direction: column; align-items: flex-start; } | |
| } | |
| @media (max-width: 400px) { | |
| .jk-connect-grid { grid-template-columns: 1fr; } | |
| body { font-size: 15px; } | |
| } | |
| /* ===================== MOTION / CONTRAST PREFS ===================== */ | |
| @media (prefers-reduced-motion: reduce) { | |
| *, *::before, *::after { animation-duration: 0.001ms ; animation-iteration-count: 1 ; transition-duration: 0.001ms ; } | |
| } | |
| @media (prefers-contrast: more) { | |
| :root { --ink-mut: #C8D4EE; --glass-border: rgba(224,122,95,0.5); --hairline: rgba(190,210,255,0.3); } | |
| } | |