/* Dashboard Steep — reprend le design system du site public (mêmes jetons de couleur, mêmes composants d'en-tête/pied) et ajoute les styles propres au tableau de bord. */ :root { color-scheme: dark; --paper: #0b1520; --surface: #111f2d; --ink: #edf4f7; --ink-soft: #c2cfd9; --muted: #94a8b8; --line: #263b4d; --green: #087b5b; --green-dark: #5bd4a7; --green-pale: #153a32; --blue-pale: #1a3044; --shadow: 0 18px 50px rgba(0, 0, 0, 0.24); --button-hover: #066449; --brand-mark-bg: #149b72; --brand-mark-fg: #07111b; --step-line: #23604c; --setup-bg: #07111b; --radius: 20px; --content: 1160px; --red: #d1667f; --amber: #d7a35b; } :root[data-theme="light"] { color-scheme: light; --paper: #f7f8f5; --surface: #ffffff; --ink: #102f50; --ink-soft: #38536c; --muted: #718092; --line: #e1e8e5; --green: #149b72; --green-dark: #087b5b; --green-pale: #e8f5ef; --blue-pale: #edf3f8; --shadow: 0 18px 50px rgba(16, 47, 80, 0.08); --button-hover: #087b5b; --brand-mark-bg: #102f50; --brand-mark-fg: #ffffff; --step-line: #cce8da; --setup-bg: #102f50; --red: #b04a63; --amber: #a9741f; } *, *::before, *::after { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 90px; } body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } a { color: inherit; } img { display: block; max-width: 100%; } .container { width: min(var(--content), calc(100% - 48px)); margin-inline: auto; } .mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; } .muted { color: var(--muted); } .site-header { position: sticky; z-index: 5; top: 0; border-bottom: 1px solid var(--line); background: var(--paper); backdrop-filter: blur(16px); } .nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; } .wordmark { display: inline-flex; align-items: center; gap: 11px; color: var(--ink); text-decoration: none; font-size: 18px; font-weight: 850; letter-spacing: 0.13em; } .wordmark-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: var(--brand-mark-bg); color: var(--brand-mark-fg); font-size: 17px; letter-spacing: 0; } .nav-links { display: flex; align-items: center; gap: 22px; } .nav-links a { color: var(--ink-soft); font-size: 14px; font-weight: 650; text-decoration: none; transition: color 160ms ease; } .nav-links a:hover { color: var(--green-dark); } .nav-links .nav-cta { padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); } .nav-links .nav-cta:hover { border-color: var(--green); color: var(--green-dark); } .theme-toggle { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink-soft); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; transition: border-color 160ms ease, color 160ms ease, background 160ms ease; } .theme-toggle:hover { border-color: var(--green-dark); color: var(--green-dark); } .theme-icon { color: var(--green-dark); font-size: 16px; line-height: 1; } .section { padding: 46px 0 82px; } .section-heading { max-width: 720px; margin-bottom: 26px; } .section-heading h1 { margin-bottom: 12px; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; letter-spacing: -0.045em; } .section-heading p { margin-bottom: 0; color: var(--muted); font-size: 17px; } .eyebrow { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 16px; color: var(--green-dark); font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .eyebrow::before { width: 8px; height: 8px; border-radius: 50%; background: var(--green); content: ""; } .button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 9px; padding: 9px 16px; border: 1px solid transparent; border-radius: 999px; background: var(--green); color: white; font: inherit; font-size: 14px; font-weight: 750; text-decoration: none; cursor: pointer; transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease; } .button:hover { transform: translateY(-2px); background: var(--button-hover); box-shadow: 0 8px 20px rgba(20, 155, 114, 0.2); } .button-secondary { border-color: var(--line); background: var(--surface); color: var(--ink); } .button-secondary:hover { border-color: #b8d8ca; background: var(--green-pale); color: var(--green-dark); box-shadow: none; } .arrow { font-size: 17px; line-height: 1; } /* ---- Tableau de bord ---- */ .toolbar { display: flex; align-items: center; justify-content: flex-end; margin-bottom: 22px; } .board { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; } .panel { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 5px 20px rgba(16, 47, 80, 0.025); } .panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; } .panel-head h2 { margin: 0; font-size: 17px; letter-spacing: -0.02em; } .count { min-width: 26px; padding: 3px 9px; border-radius: 999px; background: var(--blue-pale); color: var(--ink); font-size: 12px; font-weight: 850; text-align: center; } .detail-panel { margin-bottom: 18px; } steep-job-list { display: grid; gap: 10px; } .job { border: 1px solid var(--line); border-radius: 14px; background: var(--paper); transition: border-color 140ms ease, background 140ms ease; } .job:hover { border-color: var(--green); } .job[data-selected="true"] { border-color: var(--green); background: var(--green-pale); } .job-head { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 10px; padding: 13px 15px; cursor: pointer; list-style: none; } .job-head::-webkit-details-marker { display: none; } .job-repo { font-weight: 700; font-size: 14px; overflow-wrap: anywhere; } .job-pr { color: var(--green-dark); font-weight: 800; font-size: 13px; white-space: nowrap; } .job-info { display: grid; gap: 12px; padding: 0 15px 15px; } .job-info dl { display: grid; gap: 6px; margin: 0; } .job-info dl > div { display: grid; grid-template-columns: 74px 1fr; gap: 10px; } .job-info dt { color: var(--muted); font-size: 12px; } .job-info dd { margin: 0; font-size: 12px; overflow-wrap: anywhere; } .job-watch { justify-self: start; } /* Chevron partagé par tous les
repliables. */ .chev::before { color: var(--muted); content: "▸"; font-size: 11px; } details[open] .chev::before { content: "▾"; } .empty { margin: 0; padding: 14px 2px; color: var(--muted); font-size: 14px; } .pill { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; text-transform: lowercase; } .pill.done { background: var(--green-pale); color: var(--green-dark); } .pill.failed { background: rgba(209, 102, 127, 0.16); color: var(--red); } .reviews { overflow-x: auto; } .reviews-table { width: 100%; border-collapse: collapse; font-size: 13px; } .reviews-table th { padding: 0 12px 10px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; text-align: left; } .reviews-table td { padding: 11px 12px 11px 0; border-bottom: 1px solid var(--line); vertical-align: top; } .reviews-table tr:last-child td { border-bottom: 0; } /* Journal d'activité d'un job */ .log { max-height: 360px; overflow-y: auto; padding: 4px 2px; font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 12.5px; line-height: 1.6; } .log-entry { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line); } .log-entry:last-child { border-bottom: 0; } /* Résultat d'outil replié par défaut : le résumé tient sur une ligne, le corps complet s'affiche au dépliage. */ .log-result { padding: 6px 0; border-bottom: 1px solid var(--line); } .log-result:last-child { border-bottom: 0; } .log-result > summary { display: grid; grid-template-columns: auto auto 1fr; gap: 10px; align-items: baseline; cursor: pointer; list-style: none; } .log-result > summary::-webkit-details-marker { display: none; } .log-result > .log-body { padding-top: 6px; } .log-preview { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .log-tag { align-self: start; padding: 2px 8px; border-radius: 7px; background: var(--blue-pale); color: var(--ink); font-size: 11px; font-weight: 800; white-space: nowrap; } .log-entry[data-kind="tool_call"] .log-tag { background: var(--green-pale); color: var(--green-dark); } .log-entry[data-kind="finished"] .log-tag { background: var(--green-pale); color: var(--green-dark); } .log-entry[data-kind="gap"] .log-tag { background: rgba(215, 163, 91, 0.18); color: var(--amber); } .log-body { overflow-wrap: anywhere; white-space: pre-wrap; } .log-args { color: var(--muted); } .log-truncated { color: var(--amber); font-style: italic; } footer { padding: 26px 0; background: #0b233b; color: #b6c5d3; font-size: 13px; } .footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; } footer a { color: white; text-decoration: none; } footer a:hover { color: #8be0bc; } .footer-brand { color: white; font-weight: 800; letter-spacing: 0.1em; } :focus-visible { outline: 3px solid #35bb8e; outline-offset: 4px; } @media (max-width: 820px) { .board { grid-template-columns: 1fr; } } @media (max-width: 600px) { .container { width: min(var(--content), calc(100% - 32px)); } .nav { min-height: 66px; gap: 12px; } .nav-links { gap: 12px; } .nav-links .nav-cta { display: none; } .section { padding: 30px 0 62px; } .toolbar { flex-direction: column; align-items: stretch; } .footer-inner { align-items: flex-start; flex-direction: column; gap: 6px; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } }