/* Tema comună ICC „Astro” (în cod: Pulsar) · v1.1.0 · 25.10.2026
   Originalul e în apps-instalcorp/tema-icc.css; fiecare aplicație ICC are o copie identică.
   O schimbare se face întâi aici, apoi se recopiază în toate aplicațiile.
   Două variante: dark (implicită) și light; alegerea e comună pe *.instalcorp.ro (vezi tema-icc.js). */

:root, :root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #0a0a0f; --ink-2: #0e0e16; --panel: #13131d; --panel-2: #181826;
  --line: #ffffff14; --line-2: #ffffff24;
  --fg: #f5f5f8; --fg-2: #a0a0b4; --fg-3: #82829a;
  --brand: #8b5cf6; --brand-bright: #a78bfa; --brand-text: #c4b5fd; --brand-deep: #7c3aed; --accent: #22d3ee;
  --wip: #fbbf24; --err: #f87171; --ok: #34d399; --info: #60a5fa; --teal: #2dd4bf; --gray: #a0a0b4;
  --head-bg: color-mix(in oklab, var(--ink) 80%, transparent);
  --sh-1: 0 2px 4px rgba(0, 0, 0, .25);
  --sh-2: 0 4px 12px rgba(0, 0, 0, .35);
  --sh-3: 0 12px 32px rgba(0, 0, 0, .45);
  --sh-4: 0 24px 48px rgba(0, 0, 0, .6);
  --grid-op: .8; --glow-op: .7;
  --f-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

/* light: aceeași paletă (violet → cyan), fundal alb-lavandă, liniile și umbrele întunecate în loc de luminate */
:root[data-theme="light"] {
  color-scheme: light;
  --ink: #f5f4fa; --ink-2: #eeecf6; --panel: #ffffff; --panel-2: #f8f7fd;
  --line: #1a14321a; --line-2: #1a14322e;
  --fg: #15131f; --fg-2: #4a4660; --fg-3: #625e7a;
  --brand: #7c3aed; --brand-bright: #6d28d9; --brand-text: #6d28d9; --brand-deep: #5b21b6; --accent: #0891b2;
  --wip: #b45309; --err: #dc2626; --ok: #047857; --info: #1d4ed8; --teal: #0f766e; --gray: #4a4660;
  --head-bg: color-mix(in oklab, #ffffff 82%, transparent);
  --sh-1: 0 2px 4px rgba(26, 20, 50, .05);
  --sh-2: 0 4px 12px rgba(26, 20, 50, .07), 0 1px 2px rgba(26, 20, 50, .03);
  --sh-3: 0 12px 32px rgba(26, 20, 50, .09), 0 4px 8px rgba(26, 20, 50, .04);
  --sh-4: 0 24px 48px rgba(26, 20, 50, .14);
  --grid-op: .5; --glow-op: .45;
}

/* casetele de bifat și butoanele radio în culoarea temei */
:root { accent-color: var(--brand); }

/* gridul fin, fix în partea de sus a ferestrei: în dark liniile sunt ușor luminate, în light ușor întunecate */
.icc-grid { position: fixed; inset: 0 0 auto; height: 520px; pointer-events: none; z-index: -1; overflow: hidden; }
.icc-grid::after {
  content: ""; position: absolute; inset: 0;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 56px 56px; -webkit-mask-image: radial-gradient(ellipse 60% 70% at 50% 0%, #000 30%, transparent 80%);
  mask-image: radial-gradient(ellipse 60% 70% at 50% 0%, #000 30%, transparent 80%); opacity: var(--grid-op);
}
/* lumina violet de sus: doar în portal și pe ecranele de intrare */
.icc-grid.cu-lumina::before {
  content: ""; position: absolute; left: 50%; top: -280px; width: 820px; height: 520px; transform: translateX(-50%);
  background: radial-gradient(closest-side, color-mix(in oklab, var(--brand) 34%, transparent), transparent 70%); filter: blur(24px); opacity: var(--glow-op);
}

/* conturul luminos care face o tură a butonului într-o secundă, la trecerea mouse-ului (ca butoanele aplicațiilor din portal).
   Clasa .icc-tur îl pune pe orice buton; lista de mai jos îl pune direct pe butoanele din antetul aplicațiilor:
   .topbar … = Oferte, Cash Flow, RSVTI, Subcontractori · nav.meniu .tab = Personal · .side … = Centralizator gaze */
@property --ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
:is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button) { position: relative; isolation: isolate; }
:is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button)::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1.5px; z-index: -1; opacity: 0; pointer-events: none;
  background: conic-gradient(from var(--ang), transparent 0deg, transparent 250deg, var(--brand) 300deg, var(--accent) 345deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
:is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button)::after {
  content: ""; position: absolute; inset: -4px; border-radius: inherit; padding: 4px; z-index: -2; opacity: 0; pointer-events: none; filter: blur(5px);
  background: conic-gradient(from var(--ang), transparent 0deg, transparent 250deg, color-mix(in oklab, var(--brand) 70%, transparent) 300deg, color-mix(in oklab, var(--accent) 70%, transparent) 345deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
:is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button):is(:hover, :focus-visible):not(.off, :disabled)::before,
:is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button):is(:hover, :focus-visible):not(.off, :disabled)::after {
  animation: icc-tur 1s linear 1 forwards, icc-stinge .35s ease .85s forwards;
}
@keyframes icc-tur { from { --ang: 0deg; opacity: 1; } to { --ang: 360deg; opacity: 1; } }
@keyframes icc-stinge { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  :is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button)::before,
  :is(.icc-tur, .tema-btn, .topbar nav a, .topbar .btn, .topbar .theme-toggle, nav.meniu .tab, .side .nav a, .side .who button)::after { animation: none !important; }
}

/* butonul ☀ / ☾ */
.tema-btn {
  flex: none; display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0; border-radius: 50%; cursor: pointer;
  background: transparent; border: 1px solid var(--line-2); color: var(--fg-2); font-size: 15px; line-height: 1;
  transition: color .2s, border-color .2s, background-color .2s, transform .45s var(--ease);
}
.tema-btn:hover { color: var(--fg); border-color: color-mix(in oklab, var(--brand) 55%, var(--line-2)); transform: translateY(-2px); }
.tema-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* sigla: varianta potrivită temei */
:root .sigla-light { display: none; }
:root[data-theme="light"] .sigla-dark { display: none; }
:root[data-theme="light"] .sigla-light { display: block; }
