:root { color-scheme: light; --ink:#11231d; --muted:#60716a; --green:#146c43; --pale:#eff7f2; --line:#dce7e0; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 Inter,ui-sans-serif,system-ui,sans-serif; color:var(--ink); background:#f7faf8; }
a { color:var(--green); text-decoration:none; }
.topbar { height:64px; padding:0 max(24px,calc((100% - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; background:#102d23; color:white; }
.topbar a { color:white; }
.topbar nav,.topbar nav form { display:flex; gap:22px; align-items:center; margin:0; }
.brand { font-size:20px; font-weight:750; }.brand span { color:#8ed2aa; font-size:12px; text-transform:uppercase; }
.container { max-width:1180px; margin:0 auto; padding:48px 24px 80px; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:240px minmax(0,1fr); }
.sidebar { position:sticky; top:0; display:flex; flex-direction:column; height:100vh; padding:30px 18px 20px; background:#102d23; color:#dbece2; }
.sidebar-brand { margin:0 12px 42px; color:#fff; }
.sidebar-nav { display:grid; gap:5px; }
.sidebar-nav a { padding:10px 12px; border-radius:8px; color:#c0d4c9; font-weight:650; }
.sidebar-nav a:hover,.sidebar-nav a[aria-current="page"] { color:#fff; background:rgba(159,212,180,.15); }
.sidebar-footer { display:grid; gap:4px; margin-top:auto; padding:16px 12px 0; border-top:1px solid rgba(220,238,228,.18); font-size:13px; }
.sidebar-footer strong { overflow:hidden; text-overflow:ellipsis; color:#fff; white-space:nowrap; }
.sidebar-footer .link-button { width:max-content; margin-top:6px; color:#b9dbc6; font-size:13px; }
.signed-in-label { color:#88a99a; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.app-content { min-width:0; }
.app-topbar { display:none; }
.app-container { max-width:1360px; margin:0 auto; padding:48px 48px 80px; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:28px; }
h1 { margin:0; font-size:clamp(32px,5vw,50px); letter-spacing:-.04em; } h2 { margin-top:0; }
.eyebrow,.badge { color:var(--green); text-transform:uppercase; letter-spacing:.12em; font-size:12px; font-weight:750; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.card { display:block; padding:26px; background:white; border:1px solid var(--line); border-radius:14px; box-shadow:0 8px 30px rgba(13,52,37,.05); }
.project { color:var(--ink); transition:.15s ease; }.project:hover { transform:translateY(-2px); border-color:#9cc8ad; }
.narrow { max-width:480px; margin:40px auto; }
button,.button { display:inline-block; border:0; border-radius:8px; padding:11px 17px; background:var(--green); color:white; font:inherit; font-weight:700; cursor:pointer; }
.button-secondary { background:white; color:var(--green); border:1px solid #9cc8ad; }
.link-button { background:transparent; padding:0; }
input,select,textarea { width:100%; padding:10px 12px; border:1px solid #b8c9c0; border-radius:7px; font:inherit; }
input[type="checkbox"] { width:auto; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; }.form-grid p { margin:0; }
.field label,.preset-form label { display:block; margin-bottom:5px; font-weight:650; }
.heading-actions,.preset-form { display:flex; gap:12px; align-items:flex-end; }
.heading-actions { flex-wrap:wrap; }
.heading-actions form { margin:0; }
.project-hero { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:24px; }
.project-identity { min-width:0; max-width:700px; }.project-identity h1 { max-width:100%; }
.project-subtitle { margin:10px 0 0; color:var(--muted); font-size:17px; }
.run-actions { display:grid; gap:8px; min-width:330px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 8px 30px rgba(13,52,37,.05); }
.action-label { color:var(--muted); font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.run-action-buttons { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.run-action-buttons .button-secondary { text-align:center; }
.workspace-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0 0 34px; }
.workspace-action { position:relative; display:grid; grid-template-columns:46px minmax(0,1fr); grid-template-rows:auto auto; column-gap:12px; row-gap:2px; min-height:112px; padding:19px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); box-shadow:0 7px 24px rgba(13,52,37,.035); transition:.15s ease; }.workspace-action:hover { transform:translateY(-2px); border-color:#87bf9d; box-shadow:0 12px 26px rgba(13,52,37,.09); }.workspace-action > span:not(.workspace-marker) { align-self:end; font-weight:760; }.workspace-action small { grid-column:2; color:var(--muted); line-height:1.35; }.workspace-marker { display:grid; grid-row:1 / span 2; place-items:center; width:46px; height:46px; border-radius:50%; background:#edf7f0; color:var(--green); font-size:13px; font-weight:800; }.workspace-primary { border-color:#8ac6a0; background:#fbfefc; }
.preset-card { margin-bottom:18px; }
.preset-form > div { flex:1; max-width:430px; }
.help { color:var(--muted); }
.preset-card .help { margin:12px 0 0; }
.assumption-form { display:grid; gap:16px; }
.assumption-section { margin:0; }
.assumption-section summary { display:flex; justify-content:space-between; gap:16px; cursor:pointer; font-size:20px; font-weight:750; }
.assumption-section summary small { color:var(--muted); font-size:13px; font-weight:600; }
.assumption-section[open] summary { margin-bottom:20px; }
.sticky-actions { position:sticky; bottom:16px; padding:12px; border:1px solid var(--line); border-radius:12px; background:rgba(247,250,248,.94); box-shadow:0 8px 30px rgba(13,52,37,.12); text-align:right; }
.sticky-actions .button { margin-right:8px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:18px; }
.section-heading h2,.section-heading p { margin-bottom:0; }
.schedule-rows { display:grid; gap:12px; }
.schedule-row { border:1px solid var(--line); border-radius:10px; padding:14px 16px; background:#fbfdfc; }
.schedule-row summary,.occurrence-preview summary { display:flex; justify-content:space-between; gap:16px; cursor:pointer; font-weight:750; }
.schedule-row summary small,.occurrence-preview summary small { color:var(--muted); font-weight:600; }
.schedule-row[open] summary,.occurrence-preview[open] summary { margin-bottom:16px; }
.schedule-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 18px; }
.delete-field { align-self:end; padding:10px 12px; border-radius:7px; background:#fff7f6; }
.delete-field label { display:inline; margin-right:8px; }
.occurrence-preview { margin:0; }
.table-scroll { overflow:auto; max-height:520px; }
.table-scroll table { min-width:900px; }
.metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:20px 0 0; }
.metrics div { display:grid; gap:2px; min-height:96px; padding:18px; background:#fff; border:1px solid #e1ebe5; border-radius:10px; }.metrics span,.metrics small { color:var(--muted); }.metrics strong { font-size:23px; letter-spacing:-.025em; }.metrics small { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
table { width:100%; border-collapse:collapse; } th,td { padding:10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.error { border-color:#e5aaa4; background:#fff7f6; } code,pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.assessment { margin-bottom:22px; }
.assessment h2 { margin-bottom:6px; }
.assessment p:last-child { margin-bottom:0; }
.assessment-pass { border-color:#9cc8ad; background:#f2faf5; }
.assessment-review { border-color:#e5c27a; background:#fffaf0; }
.assessment-review .eyebrow { color:#8a5a00; }
.check-list { display:grid; gap:10px; margin:18px 0 0; padding:0; list-style:none; }
.check-list li { display:grid; gap:2px; padding:12px 14px; border-left:3px solid #c68400; background:rgba(255,255,255,.72); }
.check-list span { color:var(--muted); }
.diagnostic-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.diagnostic { display:grid; gap:3px; padding:16px; border:1px solid var(--line); border-radius:10px; }
.diagnostic span,.diagnostic small { color:var(--muted); }.diagnostic strong { font-size:18px; }
.diagnostic-pass { background:#f2faf5; border-color:#9cc8ad; }.diagnostic-review { background:#fff7f6; border-color:#e5aaa4; }
.farming-results { margin-top:18px; }.table-selector { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:7px 10px; align-items:end; min-width:min(100%,430px); }
.table-selector label { grid-column:1/-1; font-weight:650; }.table-selector select { min-width:0; }
.dirty-notice { display:flex; align-items:center; gap:10px; margin:0 0 18px; padding:12px 14px; border:1px solid #c68400; border-radius:10px; background:#fff8e9; color:#744e00; }.dirty-notice span { color:var(--muted); }
.button-link { margin-left:auto; padding:3px 7px; border:0; border-radius:5px; background:transparent; color:var(--green); font:inherit; font-size:13px; cursor:pointer; }.button-link:hover { background:#ecf6ef; }
ul.errorlist { color:#a12a24; padding-left:18px; }
.portfolio-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; padding:28px 0 40px; border-bottom:1px solid var(--line); }
.portfolio-hero h1 { max-width:720px; font-size:clamp(42px,6vw,72px); line-height:1.01; }
.portfolio-lead { max-width:570px; margin:18px 0 0; color:var(--muted); font-size:18px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; padding-bottom:5px; }
.portfolio-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:28px 0 52px; }
.portfolio-metrics > div { display:grid; gap:2px; min-height:132px; padding:22px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.portfolio-metrics span,.portfolio-metrics small { color:var(--muted); }.portfolio-metrics strong { font-size:36px; letter-spacing:-.04em; }.portfolio-metrics small { margin-top:auto; }
.dashboard-section { margin-bottom:38px; }.dashboard-section .section-heading { margin-bottom:16px; }
.section-heading a { color:var(--green); font-weight:700; white-space:nowrap; }
.project-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; }
.portfolio-project { display:flex; min-height:220px; flex-direction:column; padding:21px; }.portfolio-project h2 { margin:18px 0 5px; font-size:22px; }.portfolio-project .help { margin:0; }
.card-topline { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.model-pill,.state { display:inline-flex; align-items:center; width:max-content; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:750; line-height:1.1; }
.model-pill { background:#edf6f0; color:#236141; }.state { border:1px solid var(--line); color:var(--muted); background:#fff; }.state-current,.state-success { border-color:#b4dfc3; color:#176940; background:#f1fbf4; }.state-review,.state-failed { border-color:#e7cd8b; color:#825b02; background:#fff9e9; }.state-pending,.state-started { border-color:#bcd1df; color:#2d617b; background:#f3f8fb; }.state-planned { border-color:#d9dce1; color:#596571; background:#f7f8fa; }
.project-card-footer { display:flex; justify-content:space-between; gap:8px; margin-top:auto; padding-top:18px; color:var(--muted); font-size:12px; }.project-card-footer span:last-child { color:var(--green); font-weight:700; }
.empty-state { grid-column:1/-1; max-width:620px; }.empty-state h2 { margin-bottom:8px; }.empty-state .button { margin-top:8px; }
.dashboard-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.dashboard-panel { min-height:270px; padding:24px; }.dashboard-panel .section-heading { margin-bottom:12px; }
.attention-list,.activity-list { display:grid; gap:2px; margin:0; padding:0; list-style:none; }.attention-list li,.activity-list li { display:flex; gap:10px; padding:13px 0; border-bottom:1px solid var(--line); }.attention-list li:last-child,.activity-list li:last-child { border-bottom:0; }.attention-list p,.activity-list p { margin:3px 0 0; color:var(--muted); font-size:13px; }.attention-list .state { flex:0 0 auto; align-self:start; }.run-dot { width:8px; height:8px; margin-top:7px; flex:0 0 auto; border-radius:50%; background:#9aa8a0; }.run-success { background:#2a9460; }.run-failed { background:#c68400; }.run-pending,.run-started { background:#4d88a6; }.empty-row { display:block !important; }.empty-row p { margin-top:5px; }
.library-heading { max-width:760px; }.library-heading .help { max-width:660px; font-size:17px; }.library-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; }.model-card { display:flex; min-height:342px; flex-direction:column; padding:22px; }.model-card h2 { margin:18px 0 8px; }.model-card > p { margin:0; color:var(--muted); }.model-card-planned { background:#fbfcfb; box-shadow:none; }.capability-list { display:grid; gap:7px; margin:18px 0 22px; padding:0; list-style:none; color:#426056; font-size:13px; }.capability-list li::before { content:"✓"; margin-right:7px; color:var(--green); font-weight:750; }.model-card .button,.planned-note { margin-top:auto; }.planned-note { color:var(--muted); font-size:13px; }.catalogue-note { margin-top:32px; padding:28px; background:#f0f8f3; border-color:#b8ddc5; }.catalogue-note h2 { margin:7px 0; }.catalogue-note p:last-child { max-width:760px; margin-bottom:0; color:#466257; }
.table-card { padding:12px 28px; }.table-card table th { color:var(--muted); font-size:12px; letter-spacing:.04em; text-transform:uppercase; }.table-card td { padding:14px 10px; }.table-card small { color:var(--muted); }.table-actions { display:flex; gap:10px; font-size:13px; font-weight:700; white-space:nowrap; }.empty-table { padding:30px 10px !important; color:var(--muted); text-align:center; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; color:var(--muted); font-size:13px; }.breadcrumb span { color:#9aa8a0; }
.project-hero .card-topline { justify-content:flex-start; }.project-hero .card-topline .state { margin-left:8px; }.project-hero .eyebrow { margin:0; }
.model-overview-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0 0 30px; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:var(--line); }.model-overview-strip > div { display:grid; gap:3px; padding:17px 20px; background:#fff; }.model-overview-strip span,.model-overview-strip small { color:var(--muted); }.model-overview-strip span { font-size:11px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }.model-overview-strip strong { font-size:16px; }.model-overview-strip small { font-size:12px; }
.workspace-section { margin-bottom:4px; }.workspace-section .section-heading { margin-bottom:17px; }.workspace-section .help { margin:5px 0 0; }
.workspace-heading { margin-bottom:16px; }.workspace-navigation { display:flex; align-items:center; gap:4px; overflow:auto; margin:0 0 26px; padding:8px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 6px 20px rgba(13,52,37,.035); }.workspace-navigation-label { flex:0 0 auto; margin:0 7px 0 4px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.workspace-navigation a { flex:0 0 auto; padding:7px 9px; border-radius:6px; color:#587067; font-size:12px; font-weight:700; }.workspace-navigation a:hover,.workspace-navigation a[aria-current="page"] { background:#eaf6ee; color:#0f663d; }.schedule-heading { margin-bottom:14px; }.schedule-heading > div > p:first-child { margin-top:0; }
.project-result-summary { margin:0 0 24px; padding:21px 24px 24px; border:1px solid #b9dec7; border-radius:13px; background:linear-gradient(112deg,#f4fbf6 0%,#eef8f2 100%); }.project-result-review { border-color:#e5c27a; background:linear-gradient(112deg,#fffdf8 0%,#fff8eb 100%); }.result-summary-heading { display:flex; align-items:flex-start; gap:13px; }.result-summary-heading h2 { margin:2px 0 3px; font-size:20px; letter-spacing:-.03em; }.result-summary-heading p { margin:0; color:var(--muted); }.summary-status { display:inline-flex; flex:0 0 auto; align-items:center; gap:6px; padding:5px 9px; border:1px solid #b4dfc3; border-radius:999px; background:#fff; color:#176940; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.project-result-review .summary-status { border-color:#e5c27a; color:#825b02; }
.run-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:26px; margin:0 0 26px; padding-bottom:26px; border-bottom:1px solid var(--line); }.run-hero .eyebrow { margin:0 0 7px; }.run-hero h1 { font-size:clamp(38px,5vw,58px); }.run-reference { display:grid; min-width:270px; gap:4px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; }.run-reference span,.run-reference small { color:var(--muted); font-size:12px; }.run-reference code { font-size:12px; }.result-metrics { margin-top:26px; }.result-actions { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 26px; }.result-actions .button { text-align:center; }.result-explorer { padding:24px; }.result-table-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin:0 0 20px; padding:14px 0 0; border-top:1px solid var(--line); }.result-table-groups > div { display:grid; gap:3px; }.result-table-groups span { margin-bottom:3px; color:var(--muted); font-size:11px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }.result-table-groups a { padding:3px 5px; border-radius:5px; font-size:12px; line-height:1.25; }.result-table-groups a:hover,.result-table-groups a[aria-current="page"] { background:#ecf6ef; color:#105d39; font-weight:700; }
.result-metrics { margin-top:0; }.result-metrics div { min-height:118px; padding:19px; border-color:#c6dfce; box-shadow:0 7px 20px rgba(13,52,37,.035); }.result-metrics strong { color:#0f5b37; font-size:26px; }.result-actions { margin-bottom:24px; }.result-navigation { display:flex; gap:4px; overflow:auto; margin:0 0 20px; border-bottom:1px solid var(--line); }.result-navigation a { flex:0 0 auto; padding:10px 12px; border-bottom:3px solid transparent; color:var(--muted); font-size:13px; font-weight:700; }.result-navigation a:hover,.result-navigation a[aria-current="page"] { border-color:var(--green); color:var(--green); }.result-health { display:flex; justify-content:space-between; gap:28px; margin:0 0 22px; padding:21px 24px; border:1px solid; border-radius:12px; }.result-health h2 { margin:3px 0 4px; font-size:20px; }.result-health p:last-child { margin:0; color:var(--muted); }.result-health-pass { border-color:#b4dfc3; background:#f1faf4; }.result-health-review { border-color:#e5c27a; background:#fffaf0; }.result-health-review .eyebrow { color:#8a5a00; }.result-health .check-list { flex:1; max-width:610px; margin:0; }
@media (max-width:1050px) { .app-shell { grid-template-columns:208px minmax(0,1fr); }.app-container { padding:36px 30px 64px; }.portfolio-hero { align-items:flex-start; flex-direction:column; } }
@media (max-width:1180px) { .workspace-actions { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .app-shell { display:block; }.sidebar { position:static; height:auto; padding:18px 22px; }.sidebar-brand { margin:0 0 16px; }.sidebar-nav { display:flex; overflow-x:auto; gap:5px; }.sidebar-nav a { white-space:nowrap; }.sidebar-footer { display:none; }.app-topbar { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:0 22px; border-bottom:1px solid var(--line); background:#fff; color:var(--muted); font-size:13px; }.app-topbar .link-button { color:var(--green); font-size:13px; }.schedule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .container,.app-container { padding:32px 20px 56px; }.page-heading,.project-hero,.run-hero,.result-health { align-items:stretch; flex-direction:column; }.form-grid,.schedule-grid,.portfolio-metrics,.dashboard-columns,.model-overview-strip { grid-template-columns:1fr; }.heading-actions,.preset-form,.section-heading { align-items:stretch; flex-direction:column; width:100%; }.heading-actions form,.heading-actions button,.section-heading button,.run-actions,.run-reference { width:100%; }.hero-actions .button { text-align:center; }.workspace-actions { grid-template-columns:1fr; }.workspace-navigation { margin-bottom:20px; }.workspace-navigation-label { display:none; }.run-action-buttons { grid-template-columns:1fr; }.sticky-actions { position:static; display:grid; gap:8px; }.sticky-actions .button { margin:0; text-align:center; }.table-selector { grid-template-columns:1fr; min-width:0; }.table-selector label { grid-column:auto; }.dirty-notice { align-items:flex-start; flex-direction:column; gap:3px; }.portfolio-hero h1 { font-size:42px; }.portfolio-metrics { margin-bottom:38px; }.portfolio-metrics > div { min-height:102px; }.section-heading a { white-space:normal; }.table-card,.result-explorer { padding:8px 14px; }.model-overview-strip { gap:1px; }.result-table-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }.result-summary-heading { flex-direction:column; } }
