/* ══════════════════════════════════════════════════════════════════════════
   MODULES · Rueda Rotativa de Sabados Manana (D46, roadmap #45)
   Estetica 1:1 con el sistema visual de la app.
   ══════════════════════════════════════════════════════════════════════════ */

/* Header */
.rs-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px}
.rs-head-ico{width:22px;height:22px;color:#17743E;flex-shrink:0;margin-top:2px}
.rs-head-t{font-size:24px;font-weight:700;line-height:30px;color:#0F172A;margin:0}
.rs-head-sub{font-size:14px;font-weight:400;color:#64748B;margin:0;margin-top:4px}
.rs-head-badge{margin-left:auto;flex-shrink:0}

/* Panel */
.rs-panel{background:#FFF;border:1px solid #E2E8F0;border-radius:14px;padding:20px;margin-bottom:20px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.rs-panel-head{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.rs-panel-ico{width:18px;height:18px;color:#17743E;flex-shrink:0}
.rs-panel-title{font-size:16px;font-weight:600;color:#0F172A;margin:0;flex:1}

/* Badges */
.rs-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.rs-badge-blue{background:#EEF8F1;border:1px solid #A3DABA;color:#17743E}
.rs-badge-green{background:#F0FDF4;border:1px solid #BBF7D0;color:#15803D}
.rs-badge-amber{background:#FFFBEB;border:1px solid #FDE68A;color:#B45309}
.rs-badge-gray{background:#F8FAFC;border:1px solid #E2E8F0;color:#475569}

/* Labels */
.rs-lbl{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#475569;margin-bottom:6px}
.rs-lbl-ico{width:15px;height:15px;color:#64748B}
.rs-aux{font-size:12px;color:#64748B;margin-top:6px}

/* Input fecha */
.rs-date-wrap{position:relative}
.rs-date-wrap input[type="date"]{width:100%;height:42px;background:#FFF;border:1px solid #CBD5E1;border-radius:8px;padding:0 12px;font-size:14px;color:#172033;font-family:inherit;appearance:none;-webkit-appearance:none}
.rs-date-wrap input[type="date"]:focus{outline:none;border-color:#3DA868;box-shadow:0 0 0 3px rgba(23,116,62,.1)}
.rs-date-wrap input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5}

/* Section title */
.rs-sec{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.rs-sec-ico{width:18px;height:18px;color:#17743E;flex-shrink:0}
.rs-sec-title{font-size:16px;font-weight:600;color:#0F172A;margin:0;flex:1}

/* Person list */
.rs-list{display:flex;flex-direction:column;gap:4px}
.rs-person{display:flex;align-items:center;gap:10px;background:#FFF;border:1px solid #E2E8F0;border-radius:10px;min-height:58px;padding:0 12px;position:relative;transition:background .15s,border-color .15s,box-shadow .15s}
.rs-person:hover{background:#FAFAFB}
.rs-person.rs-dragging{background:#EEF8F1;border-color:#A3DABA;box-shadow:0 2px 8px rgba(23,116,62,.08)}

/* Drag handle */
.rs-grip{display:flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:grab;flex-shrink:0;border-radius:6px;transition:background .1s}
.rs-grip:hover{background:#F1F5F9}
.rs-grip:active{cursor:grabbing}
.rs-grip-ico{width:18px;height:18px;color:#94A3B8}

/* Position number */
.rs-pos{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;background:#F1F5F9;color:#475569}
.rs-person:first-child .rs-pos{background:#D1EDDA;color:#17743E}

/* Avatar */
.rs-av{width:36px;height:36px;border-radius:50%;border:1px solid #CBD5E1;display:flex;align-items:center;justify-content:center;font-weight:500;flex-shrink:0;overflow:hidden;background:#F1F5F9;color:#475569;font-size:13px}
.rs-av img{width:100%;height:100%;object-fit:cover;display:block}

/* Name + category */
.rs-person-info{flex:1;min-width:0}
.rs-person-name{font-size:14px;font-weight:600;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-person-cat{font-size:12px;font-weight:400;color:#64748B}

/* More menu trigger */
.rs-more{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;border-radius:6px;cursor:pointer;flex-shrink:0;transition:background .1s}
.rs-more:hover{background:#F1F5F9}
.rs-more-ico{width:18px;height:18px;color:#94A3B8;transition:color .1s}
.rs-more:hover .rs-more-ico{color:#475569}

/* Context menu */
.rs-ctx{position:absolute;right:12px;top:calc(100% + 4px);z-index:60;background:#FFF;border:1px solid #E2E8F0;border-radius:10px;box-shadow:0 4px 12px rgba(15,23,42,.08);padding:5px;min-width:180px;display:none}
.rs-ctx.open{display:block}
.rs-ctx-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;color:#334155;text-align:left;font-family:inherit}
.rs-ctx-btn:hover{background:#F8FAFC}
.rs-ctx-btn .ico{width:16px;height:16px}
.rs-ctx-sep{height:1px;background:#F1F5F9;margin:4px 2px}
.rs-ctx-btn.danger{color:#DC2626}
.rs-ctx-btn.danger:hover{background:#FEF2F2}

/* Add person button */
.rs-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:40px;background:#FFF;border:1px solid #CBD5E1;border-radius:8px;color:#17743E;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;font-family:inherit}
.rs-add:hover{background:#F8FAFC;border-color:#94A3B8}
.rs-add:disabled{background:#FFF;border-color:#CBD5E1;color:#CBD5E1;cursor:not-allowed}
.rs-add .ico{width:18px;height:18px}

/* Person selector popover */
.rs-sel-wrap{position:relative;margin-top:6px}
.rs-sel{position:absolute;left:0;right:0;z-index:50;background:#FFF;border:1px solid #E2E8F0;border-radius:10px;box-shadow:0 4px 16px rgba(15,23,42,.1);max-height:260px;overflow-y:auto;display:none}
.rs-sel.open{display:block}
.rs-sel-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #F1F5F9}
.rs-sel-search .ico{width:16px;height:16px;color:#94A3B8;flex-shrink:0}
.rs-sel-search input{flex:1;border:none;outline:none;font-size:13px;color:#172033;background:none;font-family:inherit}
.rs-sel-opt{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;transition:background .1s}
.rs-sel-opt:hover{background:#F8FAFC}
.rs-sel-opt .rs-av{width:32px;height:32px;font-size:12px}
.rs-sel-opt-info{flex:1;min-width:0}
.rs-sel-opt-name{font-size:13px;font-weight:600;color:#0F172A}
.rs-sel-opt-cat{font-size:11px;color:#64748B}
.rs-sel-empty{padding:16px;text-align:center;font-size:13px;color:#64748B}

/* Primary button */
.rs-btn-pri{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 18px;background:#17743E;color:#FFF;border:1px solid #17743E;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;font-family:inherit}
.rs-btn-pri:hover{background:#146B36;border-color:#146B36}
.rs-btn-pri:active{background:#115C30}
.rs-btn-pri:disabled{background:#CBD5E1;border-color:#CBD5E1;color:#FFF;cursor:not-allowed}
.rs-btn-pri .ico{width:18px;height:18px}

/* Secondary button */
.rs-btn-sec{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;background:#FFF;border:1px solid #CBD5E1;border-radius:8px;color:#334155;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;font-family:inherit}
.rs-btn-sec:hover{background:#F8FAFC;border-color:#94A3B8}
.rs-btn-sec .ico{width:16px;height:16px}

/* Info box */
.rs-info{display:flex;align-items:flex-start;gap:8px;background:#EEF8F1;border:1px solid #A3DABA;border-radius:8px;padding:12px;margin-top:16px}
.rs-info-ico{width:16px;height:16px;color:#17743E;flex-shrink:0;margin-top:1px}
.rs-info-text{font-size:12px;color:#334155;line-height:1.5}

/* Summary badges row */
.rs-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}

/* Result list */
.rs-results{display:flex;flex-direction:column}
.rs-result{display:flex;align-items:center;gap:12px;min-height:68px;padding:12px 14px;border-bottom:1px solid #F1F5F9;position:relative}
.rs-result:last-child{border-bottom:none}

/* Date column */
.rs-r-date{width:90px;flex-shrink:0}
.rs-r-date-d{font-size:14px;font-weight:700;color:#0F172A}
.rs-r-date-w{font-size:12px;color:#64748B}

/* Time column */
.rs-r-time{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500;color:#64748B;white-space:nowrap}
.rs-r-time .ico{width:14px;height:14px;color:#64748B}

/* Assigned person */
.rs-r-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.rs-r-user .rs-av{width:34px;height:34px;font-size:12px}
.rs-r-user-info{min-width:0}
.rs-r-user-name{font-size:14px;font-weight:600;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-r-user-cat{font-size:12px;color:#64748B}

/* Status badge */
.rs-r-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}
.rs-r-ok{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#F0FDF4;border:1px solid #BBF7D0;color:#15803D}
.rs-r-ok .ico{width:13px;height:13px}
.rs-r-swap{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#FFFBEB;border:1px solid #FDE68A;color:#B45309}
.rs-r-swap .ico{width:14px;height:14px}
.rs-r-conflict{font-size:12px;color:#92400E;margin-top:2px;text-align:right}
.rs-r-conflict .ico{width:12px;height:12px;color:#F59E0B;vertical-align:middle;margin-right:2px}
.rs-r-original{font-size:12px;color:#64748B;margin-top:2px}

/* Regenerate popover */
.rs-regen-wrap{position:relative;display:inline-block}
.rs-regen-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:#FFF;border:1px solid #E2E8F0;border-radius:10px;box-shadow:0 4px 12px rgba(15,23,42,.08);padding:16px;min-width:260px;display:none}
.rs-regen-pop.open{display:block}
.rs-regen-pop .lbl{margin-bottom:6px}
.rs-regen-pop .rs-date-wrap{margin-bottom:12px}
.rs-regen-pop-actions{display:flex;gap:8px;justify-content:flex-end}

/* Empty state */
.rs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}
.rs-empty-ico{width:40px;height:40px;color:#CBD5E1;margin-bottom:12px}
.rs-empty-t{font-size:14px;font-weight:500;color:#64748B;margin-bottom:4px}
.rs-empty-sub{font-size:13px;color:#94A3B8}

/* Sequence dots */
.rs-seq{display:flex;align-items:center;gap:0;padding-left:28px;margin-top:-2px;margin-bottom:8px}
.rs-seq-dot{width:6px;height:6px;border-radius:50%;background:#17743E;flex-shrink:0}
.rs-seq-line{flex:1;height:2px;background:#D1EDDA;margin:0 -1px}

/* Dates row */
.rs-dates-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rs-date-col{display:flex;flex-direction:column}

/* Ghost / danger buttons */
.rs-btn-ghost{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 14px;background:transparent;border:1px solid #E2E8F0;border-radius:8px;color:#64748B;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;color .15s;font-family:inherit}
.rs-btn-ghost:hover{background:#FEF2F2;border-color:#FECACA;color:#DC2626}
.rs-btn-ghost:disabled{opacity:.4;cursor:not-allowed}
.rs-btn-ghost .ico{width:18px;height:18px}

/* Summary panel */
.rs-panel-summary{border:1px solid #E2E8F0;border-radius:14px;background:#FFF;padding:20px;margin-bottom:20px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.rs-summary-tabs{display:flex;gap:4px;margin-left:auto}
.rs-tab{height:32px;padding:0 12px;border:1px solid #E2E8F0;border-radius:6px;background:#FFF;color:#64748B;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}
.rs-tab:hover{background:#F1F5F9;border-color:#CBD5E1}
.rs-tab.active{background:#17743E;color:#FFF;border-color:#17743E}
.rs-prof-list{margin-top:14px}
.rs-prof-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;transition:background .1s}
.rs-prof-row:hover{background:#F8FAFC}
.rs-prof-name{flex:1;font-size:14px;font-weight:600;color:#0F172A}
.rs-prof-count{font-size:14px;font-weight:700;color:#17743E;white-space:nowrap}
.rs-clickable{cursor:pointer;text-decoration:none;border-bottom:1px dashed #CBD5E1;transition:border-color .15s,color .15s}
.rs-clickable:hover{border-bottom-color:#17743E;color:#17743E}

/* Filters */
.rs-filters{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.rs-filter-select{width:auto!important;min-width:0;flex:0 0 auto}

/* Swap button + floating panel */
.rs-btn-swap{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #E2E8F0;border-radius:8px;background:#FFF;color:#64748B;cursor:pointer;transition:all .15s;flex-shrink:0}
.rs-btn-swap:hover{background:#EEF8F1;border-color:#A3DABA;color:#17743E}
.rs-btn-swap .ico{width:16px;height:16px}
.rs-swap-panel{display:none;position:fixed;z-index:1000;background:#FFF;border:1px solid #E2E8F0;border-radius:12px;box-shadow:0 8px 32px rgba(15,23,42,.18);padding:8px 0;width:280px}
.rs-swap-panel .cmb-pop{position:static;box-shadow:none;border:none;border-radius:0;max-height:300px}
.rs-result-manual{background:#FFFBEB}

/* Responsive */
@media(max-width:767px){
  .rs-panel{padding:16px}
  .rs-result{flex-wrap:wrap;gap:8px}
  .rs-r-date{width:auto}
  .rs-r-status{flex-direction:row;align-items:center}
  .rs-person{padding:0 10px}
  .rs-grip{width:28px;height:28px}
}
.rs-grid-2col{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:768px){.rs-grid-2col{grid-template-columns:1fr 1fr}}
