:root{--primary-color: #2ecc71;--secondary-color: #34495e;--background-color: #f4f4f4;--text-color: #333;--card-bg: #fff}body{margin:0;font-family:Inter,system-ui,sans-serif;background-color:var(--background-color);color:var(--text-color)}.app-container{max-width:1200px;margin:0 auto;padding:20px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #ddd}h1{color:var(--primary-color)}.login-container{display:flex;justify-content:center;align-items:center;height:100vh}.login-form{background:var(--card-bg);padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.form-group{margin-bottom:1rem}label{display:block;margin-bottom:.5rem;font-weight:500}input,textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-family:inherit}input[type=checkbox]{width:auto;cursor:pointer}textarea{resize:vertical;min-height:100px}button{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-weight:600;width:100%}button:hover{opacity:.9}.logout-btn{background:transparent;color:var(--secondary-color);border:1px solid var(--secondary-color);width:auto}.workflow-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.workflow-card{background:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;justify-content:space-between}.workflow-card.active{border-left:5px solid #2ecc71}.workflow-status{display:flex;justify-content:space-between;align-items:center;margin-top:1rem}.status-indicator{font-size:.9rem;font-weight:600}.status-indicator.on{color:#2ecc71}.status-indicator.off{color:#95a5a6}.toggle-btn{width:auto;padding:.5rem 1rem;font-size:.9rem}.toggle-btn.start{background-color:#2ecc71}.toggle-btn.stop{background-color:#e74c3c}.error-message{color:#e74c3c;margin-bottom:1rem}.tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:1px solid #ddd}.tab-btn{background:none;border:none;color:#666;padding:1rem;border-bottom:3px solid transparent;border-radius:0;width:auto}.tab-btn.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.tab-btn:hover{background:#f9f9f9}.action-form{background:var(--card-bg);padding:1.5rem;border-radius:8px;margin-bottom:2rem}.action-form input{margin-bottom:1rem}.action-item{background:var(--card-bg);padding:1rem;border-radius:6px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;border:1px solid #eee}.delete-btn{background:#e74c3c;width:auto;padding:.5rem 1rem}.actions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem}.action-card{background:var(--card-bg);padding:1.5rem;border-radius:8px;text-align:center;box-shadow:0 2px 4px #0000000d}.action-card h4{margin-top:0;margin-bottom:1rem}.status-msg{margin-bottom:1rem;padding:.5rem;background:#e8f5e9;color:#2ecc71;border-radius:4px}.trainer-table{width:100%;border-collapse:collapse;background:var(--card-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.trainer-table th,.trainer-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #eee}.trainer-table th{background-color:#f9f9f9;font-weight:600;color:var(--secondary-color)}.trainer-table tr:last-child td{border-bottom:none}.trainer-table .checkbox-cell{width:40px;text-align:center}.trainer-table input[type=checkbox]{width:18px;height:18px;cursor:pointer}.active-row{background-color:#f0fdf4}.btn-small{width:auto;padding:.5rem 1rem;font-size:.9rem}.delete-btn-small{background:#e74c3c;color:#fff;border:none;padding:.4rem .8rem;font-size:.8rem;border-radius:4px;cursor:pointer;width:auto}.delete-btn-small:hover{opacity:.9}.trainer-form{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}.dashboard-layout{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--background-color)}.sidebar{width:260px;background-color:#1e1e1e;border-right:1px solid #333;display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0}.sidebar-header{padding:20px;border-bottom:1px solid #333}.sidebar-header h2{color:var(--primary-color);margin:0;font-size:1.5rem}.menu-group{border-bottom:1px solid #2c2c2c}.menu-category-btn{width:100%;padding:15px 20px;background:transparent;border:none;color:#aaa;text-align:left;font-weight:600;text-transform:uppercase;font-size:.85rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background-color .2s}.menu-category-btn:hover{background-color:#ffffff0d;color:#fff}.menu-category-btn.active{color:#fff;background-color:#ffffff05}.submenu{list-style:none;padding:0;margin:0;background-color:#0003}.sidebar-btn{width:100%;display:flex;align-items:center;padding:12px 20px 12px 30px;background:transparent;border:none;color:#ccc;text-align:left;border-left:3px solid transparent;border-radius:0;font-size:.95rem;transition:all .2s}.sidebar-btn:hover{background-color:#ffffff0d;color:#fff}.sidebar-btn.active{background-color:#2ecc711a;color:var(--primary-color);border-left-color:var(--primary-color)}.sidebar-btn .icon{margin-right:12px;width:20px;text-align:center}.sidebar-footer{padding:20px;border-top:1px solid #333}.logout-btn-sidebar{background-color:transparent;border:1px solid #444;color:#aaa;display:flex;align-items:center;justify-content:center;gap:10px}.logout-btn-sidebar:hover{border-color:#e74c3c;color:#e74c3c}.main-content{flex-grow:1;overflow-y:auto;padding:0;display:flex;flex-direction:column}.content-header{padding:20px 40px;background-color:var(--card-bg);border-bottom:1px solid #ddd;margin-bottom:0}.content-header h1{font-size:1.5rem;margin:0;color:var(--text-color)}.content-body{padding:40px;max-width:1200px;width:100%;box-sizing:border-box;margin:0 auto}.app-container-full{width:100%;height:100vh}.create-client-container{max-width:600px;margin:0 auto}.btn-primary{background-color:var(--primary-color);color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:16px;width:100%;margin-top:10px}.btn-primary:hover{background-color:#27ae60}.btn-primary:disabled{background-color:#95a5a6;cursor:not-allowed}.status-msg.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-msg.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.plans-manager{display:flex;flex-direction:column;gap:30px}.plans-form-container{background:var(--card-bg);padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000000d}.plans-form{display:flex;flex-direction:column;gap:15px}.form-row{display:flex;gap:20px}.form-row .form-group{flex:1}.form-actions{display:flex;gap:10px;margin-top:10px}.btn-secondary{background-color:#95a5a6;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:16px}.btn-secondary:hover{background-color:#7f8c8d}.plans-table{width:100%;border-collapse:collapse;background:var(--card-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.plans-table th,.plans-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #eee}.plans-table th{background-color:#f9f9f9;font-weight:600;color:var(--secondary-color)}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.2rem;margin-right:10px;padding:5px;border-radius:4px;transition:background-color .2s}.btn-icon:hover{background-color:#0000000d}.client-list-container{padding:20px;background:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px #0000000d}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.search-box{position:relative;width:300px}.search-input{width:100%;padding:10px 15px 10px 35px;border:1px solid #ddd;border-radius:20px;outline:none}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#aaa}.clients-table{width:100%;border-collapse:collapse}.clients-table th,.clients-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #eee}.clients-table th{background-color:#f9f9f9;font-weight:600;color:var(--secondary-color)}.plan-badge{background-color:#e8f5e9;color:#2e7d32;padding:4px 8px;border-radius:12px;font-size:.85em;font-weight:500}.no-plan{color:#999;font-style:italic;font-size:.9em}.pagination{display:flex;justify-content:center;align-items:center;margin-top:20px;gap:15px}.page-btn{padding:8px 16px;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;width:auto;font-weight:600}.page-btn:disabled{background-color:#f5f5f5;color:#ccc;cursor:not-allowed}.page-btn:hover:not(:disabled){background-color:#27ae60}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h3{margin:0}.header-actions{display:flex;align-items:center;gap:20px}.session-counter{background:var(--card-bg);padding:10px 15px;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;align-items:center;gap:10px}.session-counter .label{font-weight:500;color:var(--secondary-color)}.session-counter .count{font-size:1.2em;font-weight:700;color:var(--primary-color)}.session-stats{display:flex;align-items:center;gap:15px}.expiration-badge{background-color:#e8f4fc;color:#2980b9;padding:8px 12px;border-radius:8px;font-size:.9em;font-weight:600;border:1px solid #d6eaf8}.session-counter .count.low{color:#e74c3c}.client-details-container{display:flex;flex-direction:column;gap:20px}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:768px){.details-grid{grid-template-columns:1fr}}.details-card{background:var(--card-bg);padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000000d}.client-link-btn{background:none;border:none;color:var(--primary-color);font-weight:600;cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.client-link-btn:hover{color:#27ae60}.back-btn{align-self:flex-start;margin-bottom:10px}.attendance-btn{width:auto}.history-table{width:100%;border-collapse:collapse}.history-table th,.history-table td{padding:10px;text-align:left;border-bottom:1px solid #eee}.history-table th{background-color:#f9f9f9;font-weight:600}.appointments-table{width:100%;border-collapse:collapse;margin-top:20px;background-color:var(--card-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.appointments-table th,.appointments-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #eee}.appointments-table th{background-color:#f9f9f9;font-weight:600;color:var(--secondary-color)}.appointments-table tr:hover{background-color:#f0fdf4}.status-badge{padding:4px 8px;border-radius:4px;font-size:.85em;font-weight:500;color:#fff;display:inline-block;min-width:80px;text-align:center}.status-confirmed,.status-badge.status-confirmed{background-color:#2ecc71!important}.status-cancelled,.status-badge.status-cancelled{background-color:#e74c3c!important}.status-moved,.status-badge.status-moved{background-color:#f39c12!important}.status-no-response,.status-badge.status-no-response{background-color:#95a5a6!important}.refresh-btn{background-color:var(--primary-color);color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:13px;margin-bottom:10px;width:auto;display:inline-block}.refresh-btn:hover{background-color:#27ae60}.weekly-calendar-container{display:flex;flex-direction:column;height:100%;background-color:var(--card-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.weekly-calendar-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #eee;background-color:#f9fafb}.calendar-nav{display:flex;align-items:center;gap:15px}.calendar-nav h3{margin:0;font-size:1.2rem;color:var(--secondary-color);min-width:200px;text-align:center}.calendar-nav button{background:#fff;border:1px solid #d1d5db;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.9em;color:#374151;transition:all .2s;height:34px}.calendar-nav button:hover{background:#f3f4f6}.calendar-filters select{padding:8px 12px;border-radius:6px;border:1px solid #d1d5db;background-color:#fff;color:#374151;font-size:.9em;height:38px}.weekly-calendar-body{display:flex;flex-direction:column;overflow:auto;max-height:calc(100vh - 200px);position:relative;background-color:#f9fafb}.calendar-days-header{display:flex;position:sticky;top:0;background-color:#fff;z-index:10;border-bottom:1px solid #e5e7eb;min-width:800px}.time-column-header{width:60px;min-width:60px;border-right:1px solid #e5e7eb;position:sticky;left:0;background-color:#fff;z-index:11}.day-column-header{flex:1;text-align:center;padding:10px 0;border-right:1px solid #e5e7eb;font-weight:600;color:#4b5563;display:flex;flex-direction:column;gap:4px}.day-column-header .day-name{font-size:.85em;text-transform:capitalize;color:#6b7280}.day-column-header .day-number{font-size:1.5em;color:#111827}.day-column-header.today .day-number{color:var(--primary-color);background:#e6f8ec;border-radius:50%;width:40px;height:40px;line-height:40px;margin:0 auto}.calendar-grid{display:flex;position:relative;background-image:linear-gradient(#e5e7eb 1px,transparent 1px);background-size:100% 120px;background-position:0 60px;background-color:#fff;min-width:800px}.time-column{width:60px;min-width:60px;border-right:1px solid #e5e7eb;position:sticky;left:0;background-color:#fff;z-index:5}.time-label{position:absolute;right:8px;transform:translateY(-50%);font-size:.75em;color:#6b7280}.day-column{flex:1;border-right:1px solid #e5e7eb;position:relative;min-height:1920px}.day-column:last-child{border-right:none}.appointment-block{position:absolute;left:4px;right:4px;border-radius:8px;padding:6px 8px;font-size:.8em;overflow:hidden;box-shadow:0 4px 10px #0000001a,0 1px 3px #0000000d;border:1px solid rgba(255,255,255,.6);cursor:pointer;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s ease;z-index:5;box-sizing:border-box}.appointment-block:hover{z-index:6;transform:translateY(-3px) scale(1.02);box-shadow:0 12px 20px #00000026,0 4px 8px #0000001a}.appointment-time{font-weight:600;margin-bottom:2px}.appointment-client{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-delete-btn{background:#fff6;border:none;color:inherit;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;padding:0;opacity:0;transition:opacity .2s,background .2s,color .2s;flex-shrink:0}.appointment-block:hover .calendar-delete-btn{opacity:1}.calendar-delete-btn:hover{background:#ff000026!important;color:#c62828!important}.clinical-history-container{display:flex;flex-direction:column}.form-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-bottom:20px}.form-section h4{margin-top:0;margin-bottom:15px;color:var(--secondary-color);border-bottom:1px solid #ddd;padding-bottom:5px}.form-section h5{margin-top:0;margin-bottom:10px;color:#4b5563;font-size:1em}.valoracion-form .form-group label{font-weight:500;color:#374151}.valoracion-form input[type=text],.valoracion-form input[type=number],.valoracion-form select,.valoracion-form textarea{transition:border-color .2s}.valoracion-form input[type=text]:focus,.valoracion-form input[type=number]:focus,.valoracion-form select:focus,.valoracion-form textarea:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #2ecc7133}.table-responsive{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch;margin-bottom:20px}.mobile-menu-toggle{display:none;background:none;border:none;color:var(--text-primary);font-size:24px;cursor:pointer;padding:0}.mobile-menu-close{display:none;background:none;border:none;color:#fff;font-size:28px;cursor:pointer}.sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:99}@media(max-width:768px){.dashboard-layout{flex-direction:column}.sidebar{position:fixed;top:0;left:-100%;width:280px;height:100vh;z-index:100;transition:left .3s ease}.sidebar.mobile-open{left:0}.sidebar-overlay.active{display:block}.mobile-menu-toggle,.mobile-menu-close{display:block;width:auto}.content-header h1{font-size:1.5rem}.details-header{flex-direction:column;align-items:flex-start;gap:15px}.header-actions{flex-wrap:wrap;width:100%;gap:10px}.session-stats{width:100%;flex-direction:column;align-items:flex-start;gap:5px}.flowbite-tabs-list{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.weekly-calendar-header{flex-direction:column;align-items:stretch;gap:15px}.calendar-nav{justify-content:space-between;flex-wrap:wrap}.calendar-nav h3{min-width:auto;width:100%;text-align:center;margin-top:10px}.calendar-filters select{width:100%}.calendar-days-header,.calendar-grid{min-width:100%}}
