/* OKILYS Freelance - instance profile styles (freelance profile, 16/09/2026). Inert unless <body data-profile="freelance">. */
:root {
  /* purple, reserved for the manual overrides of the freelance workspace (step 3: fields the CTMS would fill or lock) - not used anywhere else */
  --freelance-override: #7c3aed;
  --freelance-override-bg: #f3e8ff;
  --freelance-override-ink: #4c1d95;
}
body[data-profile="freelance"] .brand__name .app { color: var(--navy, #1a2333); }
.badge--profile { background: var(--navy, #1a2333); color: #fff; text-transform: uppercase; letter-spacing: .04em; }

/* step 2: project settings (core / modules / tools, functions of each feature, CTMS links) */
.fl-levels .grid { margin-top: 6px; }
.fl-level { border-left: 3px solid var(--teal, #21778a); padding: 4px 10px; }
.fl-level p { margin: 4px 0 0; }
.fl-savebar { position: sticky; top: 0; z-index: 5; }
.fl-group h2 { margin-bottom: 4px; }
.fl-group--core { background: var(--teal-bg, #eef6f8); }
.fl-core-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin-top: 6px; }
.fl-core-item { background: #fff; border-radius: 10px; padding: 8px 10px; border: 1px solid var(--border, #d9dee5); }
.fl-family { margin-top: 10px; }
.fl-family__title { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-soft, #4a5566); margin: 6px 0 4px; }
.fl-features td { vertical-align: top; }
.fl-features .check span:first-of-type { font-weight: 600; }
.fl-row.is-off td { opacity: .55; }
.fl-row.is-off .fl-note { visibility: hidden; }
.fl-links { display: flex; flex-wrap: wrap; gap: 6px; }
.fl-link { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--border, #d9dee5); background: #fff; font-size: .78rem; font-weight: 600; color: var(--ink-soft, #4a5566); cursor: pointer; }
.fl-link input { width: auto; margin: 0; }
.fl-link.on { background: var(--teal-bg2, #e3f1f4); border-color: var(--teal, #21778a); color: var(--teal-dark, #16525f); }
.fl-link:has(input:disabled) { opacity: .6; cursor: default; }
.fl-details { margin-top: 4px; }
.fl-toggle { background: none; border: 0; padding: 0; font-size: .76rem; font-weight: 600; color: var(--teal-dark, #16525f); cursor: pointer; }
.fl-detail-list { margin: 4px 0 0 14px; padding: 0; font-size: .78rem; line-height: 1.35; }
.fl-detail-list li { margin: 2px 0; }
.fl-where { display: inline-block; font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gray, #6b7280); margin-right: 2px; }
/* new project modal */
.fl-pick-group { margin-top: 8px; }
.fl-pick-title { font-weight: 700; margin-bottom: 2px; }
.fl-pick-family { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0; }
.fl-pick-family__label { flex: 0 0 160px; font-size: .76rem; font-weight: 600; color: var(--ink-soft, #4a5566); padding-top: 4px; }
@media (max-width: 720px) { .fl-pick-family { flex-direction: column; gap: 2px; } .fl-pick-family__label { flex: none; } }
/* v1.27.4: CTMS / Standalone per function */
.fl-links--sm .fl-link { padding: 1px 8px; font-size: .72rem; }
.fl-links.is-mixed .fl-link { border-style: dashed; }
.fl-mixed { align-self: center; }
.fl-detail-list--pills li { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 3px 0; border-bottom: 1px dotted var(--border, #e3e7ec); }
.fl-detail-list--pills li:last-child { border-bottom: 0; }
.fl-detail-list--pills .fl-fn { flex: 1 1 auto; }
.fl-detail-list--pills .fl-links { flex: 0 0 auto; }
/* step 3 (v1.28.0): purple override fields = manual entries of a standalone function */
.fl-ov { background: var(--freelance-override-bg) !important; box-shadow: inset 3px 0 0 var(--freelance-override); color: var(--freelance-override-ink); position: relative; }
dd.fl-ov { padding-left: 8px; border-radius: 0 6px 6px 0; }
.fl-ov-btn { border: 0; background: none; color: var(--freelance-override); cursor: pointer; font-size: .7rem; margin-left: 6px; vertical-align: middle; }
.fl-ov-edit { border: 0; background: none; color: var(--gray, #6b7280); cursor: pointer; font-size: .8rem; margin-left: 6px; opacity: .45; }
.fl-ov-edit:hover { opacity: 1; color: var(--freelance-override); }
td.fl-ov-editable { cursor: cell; }
td.fl-ov-editable:hover { outline: 1px dashed var(--freelance-override); outline-offset: -1px; }
.fl-ov-box { background: var(--freelance-override-bg); border-left: 3px solid var(--freelance-override); padding: 8px 10px; border-radius: 0 10px 10px 0; color: var(--freelance-override-ink); }
.fl-ov-legend { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; color: var(--freelance-override-ink); }
.fl-ov-legend i { display: inline-block; width: 12px; height: 12px; background: var(--freelance-override-bg); box-shadow: inset 3px 0 0 var(--freelance-override); }

/* Communications planner (v1.29.15, freelance installation only) */
.fl-c-add .fl-c-quick { flex: 1 1 auto; min-width: 260px; font: inherit; }
.fl-c-chips { margin: 10px 0 6px; }
.fl-c-count { margin-left: 6px; opacity: .75; }
.fl-c-table td { vertical-align: top; }
.fl-c-no { white-space: nowrap; color: var(--muted); font-variant-numeric: tabular-nums; }
.fl-c-tools { gap: 8px; flex-wrap: wrap; align-items: center; margin: 0 0 8px; }
.fl-c-tools .fl-c-find { min-width: 220px; font: inherit; }
.fl-c-th { cursor: pointer; user-select: none; }
.fl-c-th:hover { text-decoration: underline; }
.fl-c-th--on { color: var(--freelance-override, #7c4dff); }
.fl-c-arrow { font-size: .8em; }
.fl-cv-tpl { margin: 10px 0; }
.fl-cv-tpl > summary { cursor: pointer; font-weight: 600; }
.fl-cv-files-card { padding: 10px 12px; margin: 10px 0; }
.fl-cv-files a { margin-right: 10px; }
.fl-cv-skill { margin: 6px 0 10px; }
.fl-cv-skill input { font: inherit; }
.fl-cv-vers { margin-top: 4px; }
.fl-cv-vers > summary { cursor: pointer; }
.fl-cv-block { border-left: 3px solid var(--freelance-override, #7c4dff); padding-left: 8px; margin: 8px 0; }
.fl-cv-block textarea, .fl-cv-skill textarea { width: 100%; font: inherit; }
.fl-c-idea { white-space: pre-wrap; max-height: 3.4em; overflow: hidden; margin-top: 2px; }
.fl-c-links { gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.fl-c-more { margin: 8px 0; }
.fl-c-more > summary { cursor: pointer; font-weight: 600; }
.fl-c-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; background: var(--muted); }
.fl-c-prep .fl-c-dot { background: var(--freelance-override, #7c4dff); }
.fl-c-work .fl-c-dot { background: var(--orange, #e8912d); }
.fl-c-ready .fl-c-dot { background: var(--blue, #2d7ff9); }
.fl-c-done .fl-c-dot { background: var(--green, #2e9e5b); }
.fl-c-drop .fl-c-dot { background: var(--muted, #9aa0a6); }
.fl-c-drop td { opacity: .65; }
.fl-c-okcard { padding: 10px 12px; margin: 10px 0; }
.fl-c-ok { display: block; margin-top: 4px; }
.fl-c-ok-badges { margin-top: 4px; display: flex; gap: 4px; flex-wrap: wrap; }

/* Communications: the access keys given to the session that prepares the publications */
.fl-c-keys { margin-top: 14px; }
.fl-c-keys > summary { cursor: pointer; font-weight: 600; }
.fl-c-keys .table { margin-top: 6px; }
.fl-c-keys p { margin: 6px 0; }
.fl-c-go { border-left: 3px solid var(--freelance-override, #7b5cd6); padding-left: 8px; margin: 8px 0 0; }
.fl-c-card-img { max-width: 220px; max-height: 280px; border: 1px solid var(--line, #ddd); border-radius: 4px; display: block; }
