:root{--font-heading:"Fraunces", serif;--font-body:"Manrope", sans-serif;--color-bg:#f7f6f3;--color-surface:#fff;--color-text:#1f2320;--color-text-muted:#5b6560;--color-border:#dcd8d0;--color-primary:#14493a;--color-primary-contrast:#fff;--color-danger:#8a2c22;--color-warning:#92620f;--color-success:#23663f;--env-dev-bg:#2b3a67;--env-recette-bg:#92620f;--env-prod-bg:#8a2c22}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);margin:0}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.01em;font-weight:600}button{font-family:var(--font-body);cursor:pointer}a{color:var(--color-primary)}.app-shell{min-height:100vh;display:flex}.app-nav{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;gap:.25rem;width:220px;padding:1.5rem 1rem;display:flex}.app-nav .brand{font-family:var(--font-heading);margin-bottom:1.5rem;font-size:1.3rem}.app-nav a{color:var(--color-text);border-radius:6px;padding:.5rem .75rem;text-decoration:none}.app-nav a.active,.app-nav a:hover{background:var(--color-bg);color:var(--color-primary)}.app-main{flex:1;max-width:900px;padding:1.5rem 2rem}.env-banner{color:#fff;text-align:center;letter-spacing:.04em;padding:.4rem 1rem;font-size:.85rem;font-weight:600}.env-banner[data-env=dev]{background:var(--env-dev-bg)}.env-banner[data-env=recette]{background:var(--env-recette-bg)}.env-banner[data-env=prod]{background:var(--env-prod-bg)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;margin-bottom:1rem;padding:1.25rem}.status-pill{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.status-pill--success{color:var(--color-success);border-color:var(--color-success)}.status-pill--danger{color:var(--color-danger);border-color:var(--color-danger)}.status-pill--warning{color:var(--color-warning);border-color:var(--color-warning)}.btn{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:600}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn:disabled{opacity:.5;cursor:not-allowed}textarea,input{font-family:var(--font-body);border:1px solid var(--color-border);border-radius:6px;width:100%;padding:.6rem}.field-group{margin-bottom:1rem}.muted{color:var(--color-text-muted);font-size:.9rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem .4rem;font-size:.9rem}
