/* Configuration and customer software information share their own readable surfaces. */
.cc-settings-page, .cc-software-page {
    --settings-surface: #f7fafb;
    --settings-text: #172b3a;
    --settings-muted: #4c6070;
    --settings-border: #c4d2dc;
    --settings-accent: #006c75;
    --settings-accent-text: #ffffff;
    color: var(--settings-text);
}
.dark-theme .cc-settings-page, .dark-theme .cc-software-page {
    --settings-surface: #16253d;
    --settings-text: #f1f5fb;
    --settings-muted: #b9c9dc;
    --settings-border: #425570;
    --settings-accent: #00bcc4;
    --settings-accent-text: #082c35;
}
.cc-settings-page .card, .cc-software-page .card {
    background: var(--settings-surface);
    color: var(--settings-text);
    border: 1px solid var(--settings-border);
    border-radius: .75rem;
    box-shadow: none;
}
.cc-settings-page .text-muted, .cc-settings-page .form-text,
.cc-software-page .text-muted, .cc-software-footer {
    color: var(--settings-muted) !important;
}
.cc-settings-page .card-title { color: var(--settings-text); font-size:1rem; font-weight:650; }
/* Incluye las reglas especiales por empresa y los demás listados del panel. */
.dark-theme .cc-settings-page .list-group-item {
    background-color:var(--settings-surface);
    color:var(--settings-text);
    border-color:var(--settings-border);
}
.cc-settings-page .config-menu .list-group-item { text-align:left; line-height:1.45; width:100%; }
.cc-settings-page .config-menu .list-group-item.active {
    background:var(--settings-accent); color:var(--settings-accent-text); box-shadow:none;
}
.cc-settings-page :is(button, a, input, select, textarea):focus-visible,
.cc-software-page :is(button, a, summary):focus-visible {
    outline:3px solid var(--settings-accent); outline-offset:3px;
}
.cc-settings-page .config-menu .list-group-item.active:focus-visible { outline-offset:-5px; outline-color:var(--settings-accent-text); }
.cc-settings-page .btn-theme, .cc-software-page .btn-theme {
    background:var(--settings-accent); border-color:var(--settings-accent); color:var(--settings-accent-text);
    box-shadow:none;
}
.cc-settings-page .btn-theme:hover, .cc-software-page .btn-theme:hover { filter:brightness(.9); }
.cc-settings-page .btn-outline-primary, .cc-software-page .btn-outline-primary {
    color:var(--settings-accent); border-color:var(--settings-accent); box-shadow:none;
}
.cc-settings-page .btn-outline-primary:hover, .cc-software-page .btn-outline-primary:hover {
    color:var(--settings-accent-text); background:var(--settings-accent);
}
.cc-settings-page .btn-danger { color:#fff; background:#a52420; border-color:#a52420; }
.cc-settings-page .cc-settings-panel { min-width:0; }
.cc-settings-section-heading h2 { font-size:1.3rem; margin:0 0 .4rem; color:var(--settings-text); }
.cc-settings-section-heading p { color:var(--settings-muted); margin:0 0 1.25rem; }
.cc-settings-fields { min-width:0; margin:0; padding:0; border:0; }
.cc-settings-jumps { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-bottom:1.25rem; }
.cc-settings-jumps a, .cc-software-footer a { color:var(--settings-accent); text-decoration:underline; text-underline-offset:.2em; }
.cc-settings-fields [id^="cfg-nov-"] { scroll-margin-top:1rem; }
.cc-settings-savebar {
    position:sticky; bottom:0; z-index:8; display:flex; align-items:center; justify-content:space-between;
    gap:1rem; padding:1rem; margin-top:1rem; background:var(--settings-surface);
    border:1px solid var(--settings-border); border-radius:.75rem;
    box-shadow:0 -4px 18px rgba(0,0,0,.12); color:var(--settings-muted);
}
.cc-settings-savebar button { flex-shrink:0; display:flex; align-items:center; gap:.5rem; }
.cc-settings-savebar .cc-loading-wheel { display:inline-block !important; width:1rem; height:1rem; }
.cc-settings-pending { color:var(--settings-text); font-weight:600; }
.cc-settings-error { color:#b42318; font-weight:600; }
.dark-theme .cc-settings-error { color:#ffb4ab; }
.cc-settings-maintenance, .cc-software-administration {
    padding:1rem; margin:1.25rem 0; border:1px solid var(--settings-border); border-radius:.75rem;
    background:var(--settings-surface); color:var(--settings-text);
}
.cc-settings-maintenance summary, .cc-software-administration summary { cursor:pointer; font-weight:600; }
.cc-settings-maintenance p, .cc-software-administration > p { color:var(--settings-muted); margin:.75rem 0; }
.cc-settings-page .form-check-input:disabled ~ .form-check-label { opacity:1; color:var(--settings-muted); }
.dark-theme .cc-settings-page .form-select {
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c7d7e8' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
.cc-software-overview { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; }
.cc-software-eyebrow { letter-spacing:.12em; font-size:.8rem; font-weight:600; color:var(--settings-muted); margin:0; }
.cc-software-overview h2 { font-size:2rem; margin:.35rem 0; }
.cc-software-overview p:last-child { margin:0; color:var(--settings-muted); }
.cc-software-version { background:var(--settings-surface); border:1px solid var(--settings-border); padding:1rem 1.5rem; border-radius:.75rem; flex-shrink:0; }
.cc-software-version span { display:block; color:var(--settings-muted); font-size:.9rem; }
.cc-software-version strong { font-size:1.5rem; color:var(--settings-text); }
.cc-software-license { padding:1.25rem; margin-bottom:1.5rem; }
.cc-software-page section > h2 { font-size:1.2rem; margin-bottom:1rem; }
.cc-software-facts { display:flex; flex-wrap:wrap; gap:1rem 3rem; margin-bottom:0; }
.cc-software-facts dt { font-weight:400; color:var(--settings-muted); }
.cc-software-facts dd { font-weight:600; margin-bottom:.5rem; }
.cc-software-modules { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; padding:0; list-style:none; }
.cc-software-modules .card { padding:1rem; }
.cc-software-module-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; }
.cc-software-module-heading h3 { font-size:1rem; margin:0; color:var(--settings-text); }
.cc-software-module-state { font-size:.8rem; color:var(--settings-muted); border:1px solid var(--settings-border); border-radius:1rem; padding:.2rem .6rem; }
.cc-software-module-state.is-enabled { color:var(--settings-accent); border-color:var(--settings-accent); }
.cc-software-modules p { color:var(--settings-muted); margin:.5rem 0 0; font-size:.9rem; }
.cc-software-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1rem; }
.cc-software-footer { border-top:1px solid var(--settings-border); margin-top:1.5rem; padding-top:1rem; }
@media(min-width:992px) {
    .cc-settings-navigation { position:sticky; top:0; align-self:flex-start; }
    .cc-settings-layout > .cc-settings-navigation { width:28%; }
    .cc-settings-layout > .cc-settings-panel { width:72%; }
}
@media(max-width:767.98px) {
    .cc-settings-navigation .config-menu { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cc-settings-page .config-menu .list-group-item { padding:.7rem; font-size:.9rem; overflow-wrap:anywhere; border-bottom:1px solid var(--settings-border); }
    .cc-settings-savebar { padding:.75rem; gap:.65rem; align-items:stretch; flex-direction:column; }
    .cc-settings-savebar button { justify-content:center; }
    .cc-software-overview { align-items:stretch; flex-direction:column; }
    .cc-software-modules { grid-template-columns:1fr; }
    .cc-software-actions .btn { width:100%; }
}
.cc-settings-page .theme-header { background:var(--settings-accent); color:var(--settings-accent-text) !important; }
.cc-settings-page .text-primary { color:var(--settings-accent) !important; }
/* Bootstrap row gutters must stay inside the page's own scroll surface. */
.cc-settings-layout { margin-left:0; margin-right:0; }
.cc-settings-navigation { padding-left:0; }
.cc-settings-panel { padding-right:0; }
@media(max-width:767.98px) {
    .cc-settings-navigation { padding-right:0; }
    .cc-settings-panel { padding-left:0; }
}
.cc-settings-fields > .row { margin-left:0; margin-right:0; }
.cc-settings-page .input-group-text, .cc-settings-page .btn-light {
    color:var(--settings-text); background:var(--settings-surface); border-color:var(--settings-border);
}
.cc-settings-page .input-group-text { white-space:normal; }
.cc-settings-fields > div > .row { margin-left:0; margin-right:0; }
