/* 23Soft Classic · biblioteca visual reutilizable */
.sc-app { min-height: 100vh; background: var(--classic-bg); color: var(--classic-text); }
.sc-sr { position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.sc-spinner { flex:none; animation: sc-spin .8s linear infinite; }
@keyframes sc-spin { to { transform:rotate(360deg); } }
.sc-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border-radius:var(--classic-button-radius); min-height:39px; padding:9px 16px; border:1px solid transparent;
  cursor:pointer; font-size:13px; font-weight:700; line-height:1.25;
  transition:transform var(--classic-transition), background var(--classic-transition),
    box-shadow var(--classic-transition), border-color var(--classic-transition); }
.sc-btn--primary { color:white; border-color:color-mix(in srgb, var(--classic-primary) 90%, var(--classic-text)); background:var(--classic-button-primary-background);
  box-shadow:var(--classic-button-shadow),inset 0 1px 0 rgba(255,255,255,.2); }
.sc-btn--primary:hover:not(:disabled) { background:var(--classic-button-primary-background); box-shadow:var(--classic-button-hover-shadow); transform:translateY(-1px); }
.sc-btn--primary:active:not(:disabled) { background:var(--classic-button-pressed-background); transform:translateY(0); }
.sc-btn--secondary { color:var(--classic-primary-hover); border-color:color-mix(in srgb, var(--classic-primary-hover) 20%, var(--classic-border-light));
  background:linear-gradient(180deg,color-mix(in srgb, var(--classic-primary-soft) 35%, var(--classic-surface)),color-mix(in srgb, var(--classic-primary-soft) 90%, var(--classic-border))); }
.sc-btn--secondary:hover:not(:disabled) { background:color-mix(in srgb, var(--classic-primary-pressed) 5%, var(--classic-primary-soft)); border-color:color-mix(in srgb, var(--classic-primary) 25%, var(--classic-border)); }
.sc-btn--neutral { color:#594d65; border-color:color-mix(in srgb, var(--classic-primary-soft) 80%, var(--classic-muted)); background:#fff; }
.sc-btn--neutral:hover:not(:disabled) { background:color-mix(in srgb, var(--classic-bg) 85%, var(--classic-surface)); }
.sc-btn--danger { color:white; border-color:#aa3540; background:linear-gradient(130deg,#d34d59,#a62b39); }
.sc-btn--danger:hover:not(:disabled) { background:linear-gradient(130deg,#c4404f,#8c2330); }
.sc-btn--ghost { background:transparent; color:var(--classic-primary); }
.sc-btn--ghost:hover:not(:disabled) { background:var(--classic-primary-soft); }
.sc-btn:disabled { opacity:.55; cursor:not-allowed; transform:none; box-shadow:none; }
.sc-btn:focus-visible,.sc-nav-item:focus-visible,.sc-context-menu summary:focus-visible { outline:2px solid var(--classic-primary); outline-offset:3px; }
.sc-card { padding:21px; background:var(--classic-surface); border:1.2px solid var(--classic-border);
  border-radius:var(--classic-radius); box-shadow:var(--classic-shadow); min-width:0; }
.sc-card-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:15px; }
.sc-card-head h3 { margin:0; color:var(--classic-primary-hover); font-size:16px; }
.sc-card--interactive { transition:transform var(--classic-transition),box-shadow var(--classic-transition); }
.sc-card--interactive:hover { transform:translateY(-2px); box-shadow:var(--classic-card-hover-shadow); }
.sc-form { display:grid; gap:16px; }
.sc-field { min-width:0; width:100%; }
.sc-field-box { position:relative; min-height:48px; }
.sc-field-box>input,.sc-field-box>select,.sc-field-box>textarea { box-sizing:border-box; font:inherit; font-size:14px; color:var(--classic-text);
  background:#fff; width:100%; border:1.3px solid var(--classic-border); border-radius:var(--classic-input-radius);
  min-height:48px; padding:16px 13px 7px; outline:none; box-shadow:none; transition:border-color var(--classic-transition); }
.sc-field-box>textarea { min-height:95px; resize:vertical; }
.sc-field-box>input:focus,.sc-field-box>select:focus,.sc-field-box>textarea:focus { border-color:var(--classic-primary);
  outline:none; box-shadow:none; }
.sc-field-box>label { pointer-events:none; position:absolute; z-index:1; top:50%; left:11px; transform:translateY(-50%);
  font-size:13px; font-weight:500; line-height:1.2; color:var(--classic-muted); padding:0 4px;
  background:#fff; transition:all 150ms ease; }
.sc-field-box:has(>textarea)>label { top:24px; }
.sc-field--raised .sc-field-box>label,.sc-field-box:focus-within>label,
.sc-field-box:has(>input:not(:placeholder-shown))>label,
.sc-field-box:has(>textarea:not(:placeholder-shown))>label { top:0; transform:translateY(-50%);
  font-size:11px; font-weight:700; color:var(--classic-primary); }
.sc-field--auto .sc-field-box>input,.sc-field--auto .sc-field-box>textarea { background:color-mix(in srgb, var(--classic-primary-soft) 75%, var(--classic-surface)); cursor:default; }
.sc-field--auto .sc-field-box>label { background:color-mix(in srgb, var(--classic-primary-soft) 75%, var(--classic-surface)); }
.sc-required { color:var(--classic-danger); }
.sc-optional,.sc-field-hint { color:var(--classic-muted); font-size:11px; font-weight:400; }
.sc-field-hint { display:block; margin-top:5px; padding-left:4px; }
.sc-table-scroll { overflow-x:auto; width:100%; border:1px solid var(--classic-border-light); border-radius:var(--classic-table-radius); }
.sc-table { width:100%; border-collapse:collapse; font-size:13px; color:var(--classic-text); }
.sc-table th { text-align:left; color:var(--classic-primary-hover); background:color-mix(in srgb, var(--classic-primary-soft) 65%, var(--classic-bg));
  border-bottom:1.5px solid color-mix(in srgb, var(--classic-primary) 20%, var(--classic-border-light)); padding:11px 13px; font-weight:700; }
.sc-table th button { display:inline-flex; align-items:center; gap:9px; font:inherit; color:inherit;
  background:transparent; border:0; cursor:pointer; padding:0; text-align:left; }
.sc-table td { padding:11px 13px; background:#fff; border-bottom:1px solid color-mix(in srgb, var(--classic-bg) 55%, var(--classic-border-light)); vertical-align:middle; }
.sc-table tbody tr:last-child td { border-bottom:0; }
.sc-table tbody tr:hover td { background:color-mix(in srgb, var(--classic-primary-soft) 25%, var(--classic-surface)); }
.sc-row-click { cursor:pointer; }
.sc-table-empty { text-align:center; color:var(--classic-muted); padding:32px!important; }
.sc-sort { display:inline-flex; flex-direction:column; align-items:center; color:color-mix(in srgb, var(--classic-border-light) 50%, var(--classic-muted)); font-size:10px; line-height:.6; }
.sc-sort--active { color:var(--classic-primary); }
.sc-alert { display:flex; align-items:flex-start; gap:11px; border-radius:var(--classic-button-radius); border:1px solid;
  padding:12px 13px; font-size:13px; line-height:1.45; }
.sc-alert strong { display:block; margin-bottom:2px; }
.sc-alert-symbol { border-radius:50%; width:21px; height:21px; display:grid; place-items:center; font-weight:800; flex:none; }
.sc-alert>button,.sc-toast button,.sc-modal header>button { border:0; background:transparent; cursor:pointer; color:inherit; margin-left:auto; }
.sc-alert--info { background:color-mix(in srgb, var(--classic-primary-soft) 90%, var(--classic-surface)); color:color-mix(in srgb, var(--classic-primary) 70%, var(--classic-text)); border-color:color-mix(in srgb, var(--classic-primary) 15%, var(--classic-primary-soft)); }
.sc-alert--warning { background:#fff4dc; color:#80550d; border-color:#eddaa9; }
.sc-alert--success { background:#eaf7f0; color:#216e4d; border-color:#b9dec9; }
.sc-alert--error { background:#fdecf0; color:#963341; border-color:#e8b8c1; }
.sc-toast-viewport { position:fixed; right:20px; top:20px; z-index:100000; width:min(390px,calc(100vw - 32px));
  display:grid; gap:10px; pointer-events:none; }
.sc-toast { background:white; pointer-events:auto; position:relative; overflow:hidden; display:flex; gap:12px;
  justify-content:space-between; padding:16px 14px 18px; border:1px solid color-mix(in srgb, var(--classic-bg) 90%, var(--classic-muted)); border-left:4px solid var(--classic-primary);
  border-radius:var(--classic-button-radius); box-shadow:0 7px 24px color-mix(in srgb,var(--classic-text) 20%,transparent); font-size:13px; }
.sc-toast--warning { border-left-color:#b88426; }
.sc-toast--success { border-left-color:#25855c; }
.sc-toast--error { border-left-color:#b53542; }
.sc-toast p { margin:4px 0 0; color:#72647f; }
.sc-toast-timer { position:absolute; left:0; bottom:0; height:3px; background:currentColor; opacity:.35;
  width:100%; transform-origin:left; animation:sc-toast-life linear forwards; }
@keyframes sc-toast-life { to { transform:scaleX(0); } }
.sc-modal-backdrop { position:fixed; inset:0; background:var(--classic-modal-backdrop); z-index:99990;
  display:grid; place-items:center; padding:18px; }
.sc-modal { width:min(490px,100%); background:white; border-radius:var(--classic-modal-radius); border:1px solid var(--classic-border);
  box-shadow:var(--classic-modal-shadow); overflow:hidden; }
.sc-modal header,.sc-modal footer { display:flex; gap:12px; align-items:center; padding:17px 20px; }
.sc-modal header { border-bottom:1px solid color-mix(in srgb, var(--classic-surface) 40%, var(--classic-border-light)); }
.sc-modal header h3 { margin:0; font-size:18px; flex:1; color:var(--classic-primary-hover); }
.sc-modal-body { padding:22px 20px; font-size:14px; }
.sc-modal footer { justify-content:flex-end; background:color-mix(in srgb, var(--classic-primary-soft) 30%, var(--classic-surface)); }
.sc-fatal { width:min(540px,calc(100% - 30px)); margin:12vh auto; padding:32px; text-align:center;
  background:#fff; border:1px solid color-mix(in srgb, var(--classic-surface) 5%, var(--classic-border-light)); border-radius:14px; box-shadow:var(--classic-shadow); }
.sc-fatal>svg { color:var(--classic-danger); }
.sc-nav-item { width:100%; text-align:left; border:0; border-left:3px solid transparent; border-radius:var(--classic-radius-small);
  display:flex; align-items:center; gap:11px; padding:11px 13px; cursor:pointer;
  color:#62546f; background:transparent; font:inherit; }
.sc-nav-item:hover { background:color-mix(in srgb, var(--classic-primary-soft) 15%, var(--classic-bg)); }
.sc-nav-item--active { background:color-mix(in srgb, var(--classic-primary-soft) 95%, var(--classic-border)); color:var(--classic-primary-hover); border-left-color:var(--classic-primary); font-weight:700; }
.sc-tabs { display:flex; align-items:center; gap:9px; border-bottom:1px solid color-mix(in srgb, var(--classic-border) 5%, var(--classic-border-light)); }
.sc-tabs button { border:0; border-bottom:3px solid transparent; background:transparent; color:#756782;
  padding:10px 14px; cursor:pointer; font:inherit; font-weight:600; font-size:13px; }
.sc-tabs button:hover { color:var(--classic-primary); background:color-mix(in srgb, var(--classic-primary-soft) 50%, var(--classic-surface)); }
.sc-tabs button.sc-tab--active { color:var(--classic-primary-hover); background:color-mix(in srgb, var(--classic-primary-soft) 90%, var(--classic-surface)); border-bottom-color:var(--classic-primary); }
.sc-tabs--pill { border:0; }
.sc-tabs--pill button { border:1px solid var(--classic-border-light); border-radius:var(--classic-radius-pill); padding:8px 14px; }
.sc-tabs--pill button.sc-tab--active { border-color:var(--classic-primary); color:white; background:var(--classic-primary); }
.sc-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:9px; padding:10px 0; }
.sc-search { display:inline-flex; align-items:center; gap:8px; padding:0 12px; min-height:40px;
  border:1px solid var(--classic-border); border-radius:var(--classic-button-radius); background:#fff; color:#877a97; }
.sc-search:focus-within { border-color:var(--classic-primary); }
.sc-search input { background:transparent; border:0; outline:0; width:min(280px,42vw); font:inherit; color:var(--classic-text); }
.sc-toolbar select { min-height:40px; border:1px solid var(--classic-border); border-radius:var(--classic-input-radius);
  padding:6px 11px; color:var(--classic-text); background:#fff; font:inherit; }
.sc-toolbar-spacer { flex:1; }
.sc-badge { display:inline-flex; align-items:center; border-radius:var(--classic-radius-pill); padding:4px 10px;
  border:1px solid color-mix(in srgb, var(--classic-primary-soft) 65%, var(--classic-border)); background:color-mix(in srgb, var(--classic-primary-soft) 40%, var(--classic-bg)); color:color-mix(in srgb, var(--classic-primary-pressed) 50%, var(--classic-muted)); font-size:11px; font-weight:700; }
.sc-badge--info { color:color-mix(in srgb, var(--classic-primary-pressed) 75%, var(--classic-border)); background:color-mix(in srgb, var(--classic-primary-soft) 80%, var(--classic-bg)); border-color:color-mix(in srgb, var(--classic-primary) 20%, var(--classic-primary-soft)); }
.sc-badge--success { color:#286e50; background:#e6f5ec; border-color:#c3e2ce; }
.sc-badge--warning { color:#865e10; background:#fff2d8; border-color:#eedaa8; }
.sc-badge--error { color:#a4303b; background:#fdecef; border-color:#edbdc4; }
.sc-progress-wrap { width:100%; }
.sc-progress-label { display:flex; justify-content:space-between; gap:12px; font-size:12px; margin-bottom:6px; }
.sc-progress-label b { color:var(--classic-primary); }
.sc-progress { width:100%; height:6px; overflow:hidden; border-radius:var(--classic-radius-pill); background:color-mix(in srgb, var(--classic-bg) 30%, var(--classic-border-light)); }
.sc-progress>span { display:block; height:100%; background:linear-gradient(90deg,var(--classic-primary-gradient-start),var(--classic-primary));
  border-radius:inherit; transition:width 280ms ease; }
.sc-steps { display:flex; list-style:none; margin:0; padding:0; gap:12px; }
.sc-steps li { display:flex; align-items:center; gap:8px; flex:1; font-size:12px; color:#82758e; position:relative; }
.sc-steps li:not(:last-child)::after { content:''; position:absolute; left:calc(100% - 10px); width:20px;
  height:1px; background:color-mix(in srgb, var(--classic-primary-soft) 30%, var(--classic-border)); }
.sc-step-number { display:grid; place-items:center; width:26px; height:26px; border-radius:50%;
  border:1px solid color-mix(in srgb, var(--classic-surface) 15%, var(--classic-border)); flex:none; font-weight:700; }
.sc-step--done,.sc-step--current { color:var(--classic-primary-hover)!important; font-weight:700; }
.sc-step--done .sc-step-number { background:var(--classic-primary); color:#fff; }
.sc-step--current .sc-step-number { border:2px solid var(--classic-primary); background:color-mix(in srgb, var(--classic-primary-soft) 75%, var(--classic-surface)); }
.sc-accordion { border:1px solid var(--classic-border-light); border-radius:var(--classic-button-radius); background:#fff; overflow:hidden; }
.sc-accordion summary { list-style:none; padding:14px 16px; display:flex; justify-content:space-between;
  align-items:center; cursor:pointer; color:var(--classic-primary-hover); font-weight:700; }
.sc-accordion summary::-webkit-details-marker { display:none; }
.sc-accordion[open] summary { background:color-mix(in srgb, var(--classic-primary-soft) 70%, var(--classic-surface)); border-bottom:1px solid color-mix(in srgb, var(--classic-primary-soft) 20%, var(--classic-border-light)); }
.sc-accordion[open] summary svg { transform:rotate(180deg); }
.sc-accordion-body { padding:16px; }
.sc-detail-edit-actions { display:flex; justify-content:flex-end; gap:8px; margin-bottom:12px; }
.sc-pagination { display:flex; align-items:center; justify-content:center; gap:5px; margin:15px 0; }
.sc-pagination button { display:grid; place-items:center; min-width:32px; height:32px; border:1px solid transparent;
  border-radius:var(--classic-radius-small); color:var(--classic-primary-hover); background:color-mix(in srgb, var(--classic-primary-soft) 80%, var(--classic-bg)); font-weight:700; cursor:pointer; }
.sc-pagination button.sc-page--active { background:var(--classic-primary); color:white; }
.sc-pagination button:disabled { cursor:default; opacity:.45; }
.sc-context-menu { position:relative; display:inline-block; }
.sc-context-menu summary { list-style:none; cursor:pointer; display:grid; place-items:center; border-radius:var(--classic-radius-small);
  background:#fff; border:1px solid color-mix(in srgb, var(--classic-border) 5%, var(--classic-border-light)); color:var(--classic-primary); width:35px; height:35px; }
.sc-context-menu summary::-webkit-details-marker { display:none; }
.sc-context-items { position:absolute; right:0; top:calc(100% + 5px); z-index:50; min-width:185px;
  padding:6px; background:white; border:1px solid var(--classic-border-light); border-radius:var(--classic-button-radius);
  box-shadow:0 8px 20px color-mix(in srgb,var(--classic-text) 20%,transparent); }
.sc-context-items button { display:flex; align-items:center; gap:9px; width:100%; text-align:left;
  background:transparent; border:0; border-radius:7px; padding:9px 11px; color:var(--classic-text); font:inherit;
  font-size:12px; cursor:pointer; }
.sc-context-items button:hover { background:color-mix(in srgb, var(--classic-primary-soft) 90%, var(--classic-surface)); }
.sc-context-items button.sc-menu-danger { border-top:1px solid color-mix(in srgb, var(--classic-surface) 85%, var(--classic-muted)); color:var(--classic-danger); }
.sc-check { display:inline-flex; align-items:center; gap:7px; cursor:pointer; font-size:13px; }
.sc-check input { position:absolute; width:1px; height:1px; opacity:0; }
.sc-check svg { overflow:visible; flex:none; }
.sc-check circle { fill:white; stroke:var(--classic-primary); stroke-width:1.7; }
.sc-check--on circle { fill:color-mix(in srgb, var(--classic-primary-soft) 95%, var(--classic-border-light)); }
.sc-check path { fill:none; stroke:var(--classic-primary); stroke-width:4.3; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:40; stroke-dashoffset:40; visibility:hidden; }
.sc-check--on path { visibility:visible; animation:sc-writecheck .48s cubic-bezier(.35,0,.2,1) both; }
@keyframes sc-writecheck { from { stroke-dashoffset:40; } to { stroke-dashoffset:0; } }
.sc-check:focus-within svg { filter:drop-shadow(0 0 2px color-mix(in srgb,var(--classic-primary) 50%,transparent)); }
.sc-check--disabled { opacity:.55; cursor:not-allowed; }
.sc-skeleton { display:grid; gap:9px; }
.sc-skeleton span { height:14px; border-radius:6px; background:linear-gradient(95deg,color-mix(in srgb, var(--classic-primary-hover) 10%, var(--classic-surface)) 20%,color-mix(in srgb, var(--classic-surface) 85%, var(--classic-border-light)) 45%,color-mix(in srgb, var(--classic-primary-hover) 10%, var(--classic-surface)) 70%);
  background-size:220% 100%; animation:sc-shimmer 1.6s linear infinite; }
@keyframes sc-shimmer { to { background-position-x:-220%; } }
.sc-empty { text-align:center; padding:33px 18px; color:var(--classic-muted); }
.sc-empty-icon { width:55px; height:55px; margin:auto auto 14px; background:var(--classic-primary-soft); color:var(--classic-primary);
  border-radius:var(--classic-modal-radius); display:grid; place-items:center; }
.sc-empty h3 { margin:0 0 7px; font-size:17px; color:var(--classic-primary-hover); }
.sc-empty p { margin:0 auto 15px; max-width:450px; font-size:13px; }
.sc-help { display:inline-flex; position:relative; vertical-align:middle; }
.sc-help>button { border:0; padding:0; background:transparent; color:var(--classic-primary); cursor:help; }
.sc-help-pop { position:absolute; left:50%; bottom:calc(100% + 7px); transform:translateX(-50%);
  pointer-events:none; opacity:0; visibility:hidden; width:max-content; max-width:260px; padding:9px 11px;
  border-radius:var(--classic-radius-small); background:color-mix(in srgb, var(--classic-border) 10%, var(--classic-text)); color:white; font-size:12px; line-height:1.35; z-index:60;
  box-shadow:0 5px 12px rgba(0,0,0,.18); }
.sc-help:hover .sc-help-pop,.sc-help:focus-within .sc-help-pop { opacity:1; visibility:visible; }
.sc-autocomplete { position:relative; }
.sc-autocomplete-options { position:absolute; left:0; right:0; top:calc(100% + 3px); z-index:35;
  max-height:250px; overflow-y:auto; background:white; border:1px solid var(--classic-border);
  border-radius:var(--classic-input-radius); box-shadow:var(--classic-shadow); padding:5px; }
.sc-autocomplete-options button { display:block; width:100%; padding:9px 11px; text-align:left; background:transparent;
  color:var(--classic-text); border:0; border-radius:6px; font:inherit; cursor:pointer; }
.sc-autocomplete-options button:hover,.sc-autocomplete-options button:focus { background:color-mix(in srgb, var(--classic-primary-soft) 95%, var(--classic-border-light)); }
.sc-dropzone { border:1.5px dashed color-mix(in srgb, var(--classic-primary-hover) 35%, var(--classic-primary-soft)); background:color-mix(in srgb, var(--classic-primary-soft) 20%, var(--classic-surface)); border-radius:var(--classic-table-radius);
  min-height:126px; display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:18px; gap:8px; color:var(--classic-primary); }
.sc-dropzone p { margin:0; color:var(--classic-muted); font-size:12px; }
.sc-dropzone--drag { background:color-mix(in srgb, var(--classic-primary-soft) 95%, var(--classic-border)); border-color:var(--classic-primary); }
.sc-upload-list { padding:0; list-style:none; margin:8px 0 0; }
.sc-upload-list li { display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:9px 11px; border-bottom:1px solid color-mix(in srgb, var(--classic-bg) 30%, var(--classic-border-light)); font-size:13px; }
.sc-upload-list li>button { border:0; background:transparent; cursor:pointer; color:var(--classic-danger); }
.sc-save-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.sc-unsaved,.sc-saved { font-size:12px; margin-right:auto; }
.sc-unsaved { color:var(--classic-warning); }
.sc-saved { color:var(--classic-success); }

/* Puente progresivo para componentes ya existentes: presentación, no lógica. */
.sc-app .sidebar { background:color-mix(in srgb, var(--classic-primary-soft) 10%, var(--classic-surface)); border-right-color:var(--classic-border-light); }
.sc-app .sidebar nav button { position:relative; border-left:3px solid transparent; border-radius:var(--classic-radius-small); }
.sc-app .sidebar nav button.active { border-left-color:var(--classic-primary); background:color-mix(in srgb, var(--classic-primary-soft) 95%, var(--classic-border-light)); }
.sc-app .sidebar nav button:hover:not(.active) { background:color-mix(in srgb, var(--classic-primary-soft) 65%, var(--classic-surface)); }
.sc-app .topbar { border-bottom-color:var(--classic-border-light); }
.sc-app :where(.expert-card,.task-card,.summary-card,.placeholder,.business-main-card) {
  border-color:var(--classic-border); border-radius:var(--classic-radius); box-shadow:var(--classic-shadow); }
.sc-app :where(.expert-card,.task-card):hover { box-shadow:0 7px 16px color-mix(in srgb,var(--classic-text) 17%,transparent); }
.sc-app :where(button.primary,button.secondary) { transition:filter 180ms ease,box-shadow 180ms ease; }
.sc-app button.primary:not(:disabled) { background:var(--classic-button-primary-background); color:white; }
.sc-app button.primary:hover:not(:disabled) { filter:brightness(1.05); }
.sc-app button.primary:active:not(:disabled) { background:var(--classic-button-pressed-background); }
.sc-app button.secondary:hover:not(:disabled) { filter:brightness(.97); }
.sc-app :where(input,textarea,select):focus-visible { outline:none; border-color:var(--classic-primary); box-shadow:none; }
.sc-app :where(.m04-modal,.m08-modal) { border-radius:var(--classic-radius); }

/* Buscar integrado y fechas: etiquetas flotantes sin doble contorno. */
.sc-toolbar .sc-search { padding:0; border:0; min-height:48px; position:relative; background:transparent; width:min(310px,100%); }
.sc-toolbar .sc-search>.sc-field { width:100%; }
.sc-toolbar .sc-search>svg { position:absolute; left:12px; top:15px; z-index:2; pointer-events:none; }
.sc-toolbar .sc-search .sc-field-box>input { width:100%; padding-left:39px; }
.sc-toolbar .sc-search .sc-field-box>label { left:34px; }
.sc-field-box:has(>input[type=date])>label,
.sc-field-box:has(>input[type=time])>label,
.sc-field-box:has(>input[type=datetime-local])>label { top:0; transform:translateY(-50%); color:var(--classic-primary); font-size:11px; font-weight:700; }
.sc-field-box>input[type=date],.sc-field-box>input[type=time],.sc-field-box>input[type=datetime-local] { color-scheme:light; }


/* 23Soft Classic: controles reales de los formularios del ERP. */
.sc-app .sc-field-legacy {
  position:relative;
  display:block;
  min-width:0;
  padding-top:8px;
}
.sc-app .sc-field-legacy > .sc-floating-caption {
  position:absolute;
  z-index:2;
  left:12px;
  top:32px;
  display:block;
  max-width:calc(100% - 25px);
  margin:0;
  padding:0 4px;
  font-size:13px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:normal;
  white-space:nowrap;
  text-overflow:ellipsis;
  overflow:hidden;
  color:var(--classic-muted);
  background:var(--classic-surface);
  pointer-events:none;
  transform:translateY(-50%);
  transition:top 150ms ease,transform 150ms ease,color 150ms ease,font-size 150ms ease;
}
.sc-app .sc-field-legacy:focus-within > .sc-floating-caption,
.sc-app .sc-field-legacy[data-filled="true"] > .sc-floating-caption {
  top:8px;
  transform:translateY(-50%);
  color:var(--classic-primary);
  font-size:11px;
  font-weight:700;
  overflow:visible;
}
.sc-app .sc-field-legacy > :is(.sc-native-input,.sc-native-select,.sc-native-textarea) {
  display:block;
  box-sizing:border-box;
  width:100%;
  min-height:48px;
  border:1.25px solid var(--classic-border);
  border-radius:var(--classic-input-radius);
  background:var(--classic-surface);
  color:var(--classic-text);
  padding:17px 12px 7px;
  margin:0;
  font:inherit;
  font-size:14px;
  box-shadow:none;
}
.sc-app .sc-field-legacy > .sc-native-textarea {
  min-height:90px;
  resize:vertical;
}
.sc-app .sc-field-legacy > :is(.sc-native-input,.sc-native-select,.sc-native-textarea):focus {
  border-color:var(--classic-primary);
  outline:none;
  box-shadow:none;
}
.sc-app .sc-field-legacy > :is(.sc-native-input,.sc-native-textarea)::placeholder {
  color:transparent;
}
.sc-app .sc-field-legacy:focus-within > :is(.sc-native-input,.sc-native-textarea)::placeholder {
  color:#9d93a9;
}
.sc-app .sc-field-legacy > :is(.sc-native-input,.sc-native-textarea)[readonly] {
  background:color-mix(in srgb, var(--classic-primary-soft) 70%, var(--classic-surface));
}
.sc-app .sc-field-legacy:has(> :is(.sc-native-input,.sc-native-textarea)[readonly]) > .sc-floating-caption {
  background:color-mix(in srgb, var(--classic-primary-soft) 70%, var(--classic-surface));
}
/* Botones de la biblioteca: heredan comportamiento y clases heredadas, pero
   su variante visual ya se decide por ClassicButton. */
.sc-app .sc-classic-button--primary:not(:disabled) {
  background:var(--classic-button-primary-background);
  color:white;
  border-color:var(--classic-primary-hover);
  border-radius:var(--classic-button-radius);
  font-weight:750;
  box-shadow:var(--classic-button-shadow);
}
.sc-app .sc-classic-button--primary:hover:not(:disabled) {
  background:var(--classic-button-primary-background);
  filter:brightness(1.05);
}
.sc-app .sc-classic-button--primary:active:not(:disabled) {
  background:var(--classic-button-pressed-background);
  box-shadow:inset 0 2px 5px color-mix(in srgb,var(--classic-text) 25%,transparent);
}
.sc-app .sc-classic-button--secondary:not(:disabled) {
  background:var(--classic-button-secondary-background);
  border-color:color-mix(in srgb, var(--classic-primary-soft) 30%, var(--classic-border));
  border-radius:var(--classic-button-radius);
  color:var(--classic-primary-hover);
}
.sc-app .sc-classic-button--danger:not(:disabled) {
  background:linear-gradient(135deg,#d14b57,#a52938);
  border-color:#a52938;
  border-radius:var(--classic-button-radius);
  color:#fff;
}
.sc-app .sc-classic-button:focus-visible {
  outline:2px solid var(--classic-primary);
  outline-offset:2px;
}
.sc-app .sc-classic-button:disabled { opacity:.5; cursor:not-allowed; }

/* 23Soft Classic · comprobante de seleccion reutilizable en ERP y PWA */
.sc-app .sc-choice-card .sc-choice-indicator {
  display:grid;place-items:center;flex:none;width:23px;height:23px;
  border:1.5px solid var(--classic-border);border-radius:var(--classic-radius-small);
  background:var(--classic-surface);color:transparent;
}
.sc-app .sc-choice-card[aria-pressed="true"] .sc-choice-indicator,
.sc-app .sc-choice-card.selected .sc-choice-indicator {
  border-color:var(--classic-primary);background:var(--classic-primary);color:var(--classic-surface);
}
.sc-app .sc-choice-card[aria-pressed="true"] .sc-choice-indicator svg,
.sc-app .sc-choice-card.selected .sc-choice-indicator svg {
  color:var(--classic-surface);stroke:currentColor;stroke-width:3;
}
.sc-app .sc-choice-card:focus-visible { outline:2px solid var(--classic-primary);outline-offset:2px; }

/* 23Soft Classic · panel de acceso común gobernado por los tokens de tema */
.sc-access-screen { display:grid;place-items:center;padding:24px;min-height:100vh; }
.sc-access-panel { width:min(450px,100%);padding:clamp(22px,4vw,36px); }
.sc-access-brand { display:flex;align-items:center;gap:12px;margin-bottom:33px; }
.sc-access-logo { display:grid;place-items:center;flex:none;width:48px;height:48px;
  border-radius:var(--classic-radius);background:var(--classic-button-primary-background);
  color:var(--classic-surface);font-size:21px;font-weight:850;box-shadow:var(--classic-button-shadow); }
.sc-access-brand strong,.sc-access-brand span { display:block; }
.sc-access-brand strong { font-size:20px;line-height:1.05; }
.sc-access-brand span { color:var(--classic-muted);font-size:13px;margin-top:4px; }
.sc-access-eyebrow { color:var(--classic-primary);letter-spacing:.08em;font-weight:800;font-size:11px;margin:0 0 7px; }
.sc-access-panel h1 { margin:0 0 8px;font-size:clamp(24px,4vw,30px);line-height:1.2; }
.sc-access-lead { margin:0 0 28px;color:var(--classic-muted);font-size:14px;line-height:1.5; }
.sc-access-submit { width:100%;min-height:46px; }
.sc-access-error { margin:0; }
.sc-access-error[hidden] { display:none; }
.sc-access-footer { margin:24px 0 0;text-align:center;color:var(--classic-muted);font-size:12px; }

/* 23Soft Classic · ficha seleccionable común: estética y estado desde tokens */
.sc-app .sc-choice-card.sc-choice-card {
  display:flex;align-items:flex-start;gap:11px;width:100%;min-width:0;
  text-align:left;border:1px solid var(--classic-nav-card-border);
  border-radius:var(--classic-radius);padding:13px 14px;cursor:pointer;
  background:var(--classic-nav-card-background);
  box-shadow:var(--classic-nav-card-elevation);
  transition:border-color var(--classic-transition),box-shadow var(--classic-transition),background var(--classic-transition);
}
.sc-app .sc-choice-card.sc-choice-card[aria-pressed="true"] {
  border-color:var(--classic-primary);
  background:color-mix(in srgb,var(--classic-primary-soft) 47%,var(--classic-surface));
  box-shadow:var(--classic-nav-card-pressed-shadow),0 0 0 1px var(--classic-primary);
}
.sc-app .sc-choice-card strong,.sc-app .sc-choice-card small { display:block; }
.sc-app .sc-choice-card small { margin-top:4px;color:var(--classic-muted); }
