/* The shared NORMIC workspace. Appearance only: no display/visibility changes
   to forms, dialogs, tables, permissions or workflow states. */
body.sv-experience[data-standard-theme] {
    background-color:var(--normic-canvas); color:var(--normic-ink);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
    --sv-ink:var(--normic-ink); --sv-border:var(--normic-edge);
    --sv-shadow:var(--normic-surface-shadow);
}
.sv-experience[data-standard-theme] :is(main,.normic-content) { min-width:0; }
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(h1,h2,h3,h4) { letter-spacing:-.018em; }
.sv-experience[data-standard-theme] :is(main,.normic-content) h1 { font-size:clamp(23px,2.2vw,30px); font-weight:650; line-height:1.35; }
.sv-experience[data-standard-theme] :is(main,.normic-content) h2 { font-weight:650; line-height:1.4; }
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(.bg-white.rounded-lg,.bg-white.rounded-xl,.bg-white.rounded-2xl,.bg-white.rounded-3xl,.indicator-card,.sv-chart-panel,.sv-kpi) {
    border-radius:12px; box-shadow:var(--normic-surface-shadow); background-image:none;
}
.sv-experience[data-standard-theme] :is(.indicator-card,.sv-kpi):hover { transform:none; box-shadow:0 3px 12px #192c430a; }
.sv-experience[data-standard-theme] :is(.sv-dashboard-hero,.normic-page-banner) {
    background:#fff; color:var(--normic-ink); border:1px solid var(--normic-edge);
    border-left:3px solid var(--normic-color); border-radius:12px; box-shadow:none;
}
.sv-experience[data-standard-theme] .normic-page-banner :is(h1,h2,h3,strong,.text-white) { color:var(--normic-ink); }
.sv-experience[data-standard-theme] .normic-page-banner :is(p,[class*="text-blue-"],[class*="text-indigo-"],[class*="text-violet-"]) { color:var(--normic-muted); }
.sv-experience[data-standard-theme] .normic-page-banner :is(.text-emerald-300,.text-emerald-400,.text-green-300,.text-green-400) { color:#047857; }
.sv-experience[data-standard-theme] .normic-page-banner :is(.bg-white\/10,.bg-white\/20) { background:var(--normic-canvas); color:var(--normic-ink); border-color:var(--normic-edge); }
.sv-experience[data-standard-theme] main :is(h1,h2) > :is(div,span):where([class*="bg-"]) {
    background:var(--normic-soft); color:var(--normic-color); box-shadow:none; border-radius:9px;
}
.sv-experience[data-standard-theme] main :is(h1,h2) > :is(div,span):where([class*="bg-"]) i { color:inherit; }

/* Actions: strong creation actions, quieter help and downloads. Destructive,
   approval and risk states retain their existing color semantics. */
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(button,a):where([class*="rounded"],[class*="btn-"],.ho-button) {
    border-radius:8px; font-weight:600; box-shadow:none;
}
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(button,a):where(.bg-blue-600,.bg-indigo-600,.bg-purple-600,.bg-violet-600):not([role="tab"]) {
    background:var(--normic-ink); color:#fff;
}
.sv-experience[data-standard-theme] :is(main,.normic-content) button:has(> .fa-plus):not([class*="text-red"]),
.sv-experience[data-standard-theme] :is(main,.normic-content) button:has(> .fa-plus-circle) { background:var(--normic-ink); color:#fff; border-color:var(--normic-ink); transform:none; }
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(a[href*="/export"],a[href*="/print"],button[onclick*="export"],button[onclick*="Export"],button[onclick*="Guide"],button[onclick*="guide"]):where([class*="rounded"],[class*="btn-"]) {
    background:#fff; color:var(--normic-muted); border:1px solid var(--normic-edge); box-shadow:none; transform:none;
}
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(a[href*="/export"],a[href*="/print"],button[onclick*="export"],button[onclick*="Export"],button[onclick*="Guide"],button[onclick*="guide"]):where([class*="rounded"],[class*="btn-"]) i { color:inherit; }
.sv-experience[data-standard-theme] :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--normic-color); outline-offset:3px; }
.sv-experience[data-standard-theme] :is(button,a)[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }

/* Apply the same fields inside dialogs outside <main>, and standalone portals.
   Hidden, checkbox, radio, range, file and color inputs keep their native shape. */
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(input:not([type]),input[type="text"],input[type="search"],input[type="email"],input[type="tel"],input[type="url"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="time"],select,textarea) {
    font-family:inherit; font-size:14px; line-height:1.5; min-height:42px; max-width:100%;
    border-radius:8px; border:1px solid #b8c7d8; padding-top:9px; padding-bottom:9px; color:var(--normic-ink); background-color:#fff;
}
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(input:not([type]),input[type="text"],input[type="search"],input[type="email"],input[type="tel"],input[type="url"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="time"],select,textarea):not([class*="pl-"]):not([class*="pr-"]) { padding-left:12px; padding-right:12px; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) textarea { min-height:96px; resize:vertical; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(input,textarea)[readonly] { background-color:#f1f4f8; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(input,select,textarea):disabled { opacity:.65; cursor:not-allowed; }
.sv-experience[data-standard-theme] :is(input,select,textarea)[aria-invalid="true"],
.sv-experience[data-standard-theme] :is(input,select,textarea):user-invalid { border-color:#b91c1c; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(input,select,textarea):focus-visible { box-shadow:0 0 0 3px var(--normic-soft); }
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(input,textarea)::placeholder { color:#718096; opacity:1; }
.sv-experience[data-standard-theme] :is(main,.normic-content) label:where([class*="uppercase"]) { text-transform:none; letter-spacing:0; font-weight:600; }
.sv-experience[data-standard-theme] :is(dialog,[role="dialog"]) { border-radius:14px; }
.sv-experience[data-standard-theme] :is([id*="Modal"],[id^="modal"]).fixed > .bg-white { border-radius:14px; border:1px solid var(--normic-edge); box-shadow:0 20px 60px #10243b26; }
.sv-experience[data-standard-theme] :is([id*="Modal"],[id^="modal"]).fixed > .bg-white > [class*="bg-gradient"] { background:var(--normic-ink); }

/* Readable tables: no fixed column widths, removed columns or forced wrapping.
   Individual semantic header/cell colors and horizontal matrix scrolling survive. */
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"]) table { font-variant-numeric:tabular-nums; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"]) table :is(th,td) { padding:12px 14px; line-height:1.5; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"]) table th { text-transform:none; letter-spacing:0; font-size:12px; font-weight:600; }
.sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"]) table td { font-size:13px; border-bottom-color:var(--normic-edge); vertical-align:middle; }
.sv-experience[data-standard-theme] :is(main,.normic-content) thead:where(.bg-slate-50,.bg-gray-50,.bg-slate-100,.bg-gray-100) { background:#f1f4f8; color:var(--normic-muted); }
.sv-experience[data-standard-theme] :is(main,.normic-content) :is(.overflow-x-auto,.ho-table,.dp-table-wrap,.onb-table-wrap) { scrollbar-width:thin; scrollbar-color:#a6b3c3 #f1f4f8; }
.sv-experience[data-standard-theme] #main-sidebar > .overflow-y-auto { overflow-x:hidden; min-width:0; }

/* Role dashboards use the same branding and navigation hierarchy. */
.normic-workspace-brand { display:inline-flex; align-items:center; gap:10px; color:#192c43; text-decoration:none; flex-shrink:0; }
.normic-workspace-brand img { width:40px; height:40px; object-fit:contain; }
.normic-workspace-brand strong { font-size:18px; font-weight:750; letter-spacing:.06em; line-height:1.2; }
.normic-workspace-brand small { display:block; color:#5d6d80; font-size:10px; letter-spacing:0; font-weight:500; }
.normic-workspace-owner { width:94px; height:48px; object-fit:contain; flex-shrink:0; }
.sv-experience[data-standard-theme].sv-dashboard > nav { background:#fff; color:var(--normic-ink); border-bottom:1px solid var(--normic-edge); box-shadow:none; }
.sv-experience[data-standard-theme].sv-dashboard > nav :is(.text-emerald-400,.text-violet-400,.text-slate-400) { color:var(--normic-muted); }
.sv-experience[data-standard-theme].sv-dashboard > nav :is(.bg-emerald-600,.bg-violet-600) { background:#f1f4f8; border-color:var(--normic-edge); box-shadow:none; color:var(--normic-muted); }
.sv-experience[data-standard-theme].sv-dashboard > nav :is(.bg-emerald-600,.bg-violet-600) i { color:inherit; }
.sv-experience[data-standard-theme].sv-admin > aside { width:248px; background:#fff; color:var(--normic-ink); border-right:1px solid var(--normic-edge); }
.sv-experience[data-standard-theme].sv-admin > aside .normic-workspace-brand { padding:20px; min-height:80px; }
.sv-experience[data-standard-theme].sv-admin > aside > .flex-1 { padding:14px 12px; }
.sv-experience[data-standard-theme].sv-admin > aside > .flex-1 > a { font-size:13px; font-weight:550; color:var(--normic-muted); border-radius:8px; box-shadow:none; padding:11px 12px; }
.sv-experience[data-standard-theme].sv-admin > aside > .flex-1 > a:hover { background:#f5f7fa; color:var(--normic-ink); }
.sv-experience[data-standard-theme].sv-admin > aside > .flex-1 > a.bg-emerald-600 { background:#edf2f7; color:var(--normic-ink); box-shadow:inset 2px 0 var(--normic-ink); }
.sv-experience[data-standard-theme].sv-admin > aside > .p-4 { border-color:var(--normic-edge); }
.sv-experience[data-standard-theme].sv-admin > aside .sv-brand-caption { color:var(--normic-muted); }
.sv-experience[data-standard-theme].sv-admin > aside .sv-company-brand { background:#fff; border-color:var(--normic-edge); }
.sv-experience[data-standard-theme] :is(.dp-card,.dp-kpi,.dp-panel) { border-radius:12px; border-color:var(--normic-edge); box-shadow:none; }
.sv-experience[data-standard-theme] :is(.dp-hero,.dp-banner) { background:var(--normic-ink); box-shadow:none; border-radius:12px; }
.sv-experience[data-standard-theme].sv-admin > aside .sv-admin-brand { padding:8px 20px 14px; gap:2px; }
.sv-experience[data-standard-theme].sv-admin > aside .sv-admin-brand img { width:96px; height:49px; border-radius:0; }
.sv-experience[data-standard-theme].sv-admin > aside .sv-admin-brand .sv-brand-caption { margin-top:0; font-size:9px; letter-spacing:.04em; }
.sv-experience[data-standard-theme] .dp-top { border-top:0; box-shadow:none; }
.sv-experience[data-standard-theme] .dp-top .normic-workspace-brand img { width:40px; height:40px; background:transparent; }
.sv-experience[data-standard-theme] .dp-top .normic-workspace-brand span { margin:0; }
.sv-experience[data-standard-theme] .dp-top .normic-workspace-owner { width:94px; height:48px; }
.sv-experience[data-standard-theme] .dp-top .sv-brand-caption { font-size:10px; letter-spacing:.04em; }
.sv-experience[data-standard-theme] :is(.dp-primary,#internal-audits .ia-primary) { background:var(--normic-ink); color:#fff; border-radius:8px; }
.sv-experience[data-standard-theme] :is(.ia-card,.dp-stats article) { border-radius:12px; box-shadow:none; border-color:var(--normic-edge); }
.sv-experience[data-standard-theme] #internal-audits :is(input,textarea,select) { border-radius:8px; font-size:14px; }
.sv-experience[data-standard-theme] #internal-audits button { border-radius:8px; }
.sv-experience[data-standard-theme].normic-standalone :is(.bg-white.rounded-xl,.bg-white.rounded-2xl,.bg-white.rounded-3xl) { border-radius:12px; box-shadow:var(--normic-surface-shadow); }
.sv-experience.normic-support > :is(.bg-slate-900,.bg-slate-900\/50) { background:#fff; border-color:var(--normic-edge); }
.sv-experience.normic-support > .bg-slate-900 :is(.text-white,.text-slate-200) { color:var(--normic-ink); }
.sv-experience.normic-support > .bg-slate-900 .bg-slate-800 { background:#f1f4f8; color:var(--normic-ink); border-color:var(--normic-edge); }
.sv-experience.normic-support .unanswered-dot { animation:none; }

/* The setup wizard uses the same light surfaces, including its own variables. */
body.sv-experience.normic-onboarding {
    --onb-bg:#f5f7fa; --onb-surface:#fff; --onb-surface-2:#f8fafc; --onb-border:#d8e1eb;
    --onb-text:#192c43; --onb-text-muted:#5d6d80; --onb-accent:#1d4ed8; --onb-accent-2:#047857;
    --onb-danger:#b91c1c; --onb-warning:#92400e; --sidebar-width:248px;
    --foda-f:#047857; --foda-d:#b91c1c; --foda-o:#1d4ed8; --foda-a:#92400e;
}
.sv-experience.normic-onboarding .onb-main { background:var(--normic-canvas); }
.sv-experience.normic-onboarding .onb-sidebar { padding:24px 16px; }
.sv-experience.normic-onboarding .sidebar-brand { padding-bottom:20px; }
.sv-experience.normic-onboarding .sidebar-brand img { width:42px; height:42px; }
.sv-experience.normic-onboarding .sidebar-brand small { color:var(--normic-muted); }
.sv-experience.normic-onboarding .step-header h2 { background:none; -webkit-text-fill-color:var(--normic-ink); color:var(--normic-ink); font-size:26px; font-weight:650; }
.sv-experience.normic-onboarding .step-num { background:#edf1f6; }
.sv-experience.normic-onboarding .step-list li.active { background:#eff4fc; }
.sv-experience.normic-onboarding .step-list li:hover { background:#f1f4f8; }
.sv-experience.normic-onboarding .step-list li.active .step-num { background:var(--onb-accent); }
.sv-experience.normic-onboarding .step-list li.completed .step-num { background:var(--onb-accent-2); }
.sv-experience.normic-onboarding :is(.sidebar-compliance,.completion-message) { background:#f1f4f8; border-color:var(--normic-edge); }
.sv-experience.normic-onboarding :is(.compliance-value,.completion-message h2) { background:none; -webkit-text-fill-color:var(--normic-ink); color:var(--normic-ink); }
.sv-experience.normic-onboarding .progress-bar { background:#e2e8ef; }
.sv-experience.normic-onboarding .progress-fill { background:var(--normic-ink); }
.sv-experience.normic-onboarding :is(.btn-next,.btn-next:hover) { background:var(--normic-ink); box-shadow:none; transform:none; }
.sv-experience.normic-onboarding :is(.btn-next.btn-complete,.btn-next.btn-complete:hover) { background:#047857; }
.sv-experience.normic-onboarding .form-grid { background:#fff; padding:22px; border:1px solid var(--normic-edge); border-radius:12px; }
.sv-experience.normic-onboarding .onb-topbar { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:16px 40px; box-shadow:none; }
.sv-experience.normic-onboarding .progress-wrapper { flex:1; min-width:200px; }
.sv-experience.normic-onboarding .onb-topbar .sv-help-button { width:auto; margin:0; }
.sv-experience.normic-onboarding .onb-main > .normic-video-button { width:auto; align-self:flex-end; margin:12px 40px 0; }
.sv-experience.normic-onboarding .toggle-switch { background:#cbd5e1; }
.sv-experience.normic-onboarding .toggle-label input:checked + .toggle-switch { background:#047857; }
.sv-experience.normic-onboarding .sup-badge-aprobado { color:#047857; }
.sv-experience.normic-onboarding .sup-badge-condicional { color:#854d0e; }
.sv-experience.normic-onboarding .sup-badge-reevaluar { color:#b91c1c; }

/* Standalone tools share the same assets without loading unrelated app scripts. */
.sv-experience.normic-standalone { margin:0; background:var(--normic-canvas); }
.normic-standalone-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px clamp(16px,4vw,40px); background:#fff; border-bottom:1px solid #e2e8ef; }
.sv-experience.normic-tutorials > header { padding:14px max(20px,calc((100vw - 1200px)/2)); }
.sv-experience.normic-tutorials article { border-radius:12px; box-shadow:none; border-color:var(--normic-edge); }
.sv-experience.normic-tutorials .grid { gap:20px; }
.sv-experience.normic-tutorials .copy h2 { font-size:17px; }
.sv-experience.normic-tutorials .copy p { font-size:14px; }
.sv-experience.normic-standalone #normic-export { margin:28px auto; border-radius:12px; box-shadow:none; background:#fff; }
.sv-experience.normic-standalone #normic-export :is(button,.download) { background:var(--normic-ink); border-radius:8px; font-size:14px; }
.sv-experience.normic-standalone #normic-export .notice { background:#f1f4f8; }
.sv-experience.normic-hub { background:var(--normic-canvas); }
.sv-experience.normic-hub :is(h1,h2) { color:var(--normic-ink); font-weight:650; }
.sv-experience.normic-hub p { color:var(--normic-muted); }
.sv-experience.normic-hub a.group { background:#fff; border:1px solid var(--normic-edge); border-radius:12px; box-shadow:none; transform:none; }
.sv-experience.normic-hub a.group > .absolute { display:none; }
.sv-experience.normic-hub a.group:hover { border-color:#a6b3c3; }
.sv-experience.normic-hub a.group .text-blue-400 { color:#1d4ed8; }
.sv-experience.normic-hub a.group .text-violet-400 { color:#6d28d9; }
.sv-experience.normic-hub .normic-hub-brand { display:flex; justify-content:center; margin-bottom:20px; }

@media(max-width:767px) {
    .sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"],[id*="Modal"],[id^="modal"]) :is(input:not([type]),input[type="text"],input[type="search"],input[type="email"],input[type="tel"],input[type="url"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="time"],select,textarea) { font-size:16px; min-height:44px; }
    .sv-experience[data-standard-theme] :is(main,.normic-content,dialog,[role="dialog"]) :is(button,a):where([class*="px-"],[class*="btn-"]) { min-height:44px; }
    .sv-experience[data-standard-theme].sv-admin > aside { width:100%; max-height:220px; border-right:0; border-bottom:1px solid var(--normic-edge); }
    .sv-experience[data-standard-theme].sv-admin > aside .normic-workspace-brand { padding:10px 16px; min-height:52px; }
    .sv-experience[data-standard-theme].sv-admin > aside > .flex-1 { padding:8px 12px; }
    .sv-experience[data-standard-theme].sv-admin > aside .sv-company-brand { display:none; }
    .normic-workspace-brand { gap:7px; }
    .normic-workspace-brand img { width:32px; height:32px; }
    .normic-workspace-brand strong { font-size:16px; }
    .normic-workspace-owner { width:78px; height:40px; }
    .normic-standalone-bar { flex-wrap:wrap; }
    .sv-experience.normic-onboarding .form-grid { padding:16px; }
    .sv-experience.normic-onboarding .onb-topbar { padding:16px; }
    .sv-experience.normic-onboarding .onb-main > .normic-video-button { margin:12px 16px 0; }
    .sv-experience.normic-standalone #normic-export { margin:16px; padding:20px; }
    .sv-experience[data-standard-theme] .dp-top { flex-wrap:wrap; }
    .sv-experience[data-standard-theme] .dp-top .sv-company-brand { gap:12px; }
    .sv-experience.normic-commercial [class*="min-w-[340px]"] { min-width:0; }
}
@media print {
    .normic-standalone-bar { display:none; }
    .sv-experience[data-standard-theme] { background:#fff; }
    .sv-experience[data-standard-theme] :is(main,.normic-content) table :is(th,td) { padding:6px; font-size:10px; }
}
