*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}:root{--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-hover: #334155;--color-text: rgba(248, 250, 252, .92);--color-text-muted: #94a3b8;--color-border: #334155}html{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased}body{min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{font-family:inherit;font-size:1rem;cursor:pointer;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-surface);color:var(--color-text);padding:.5rem 1rem;transition:background-color .2s,border-color .2s}button:hover{background-color:var(--color-surface-hover);border-color:var(--color-primary)}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:1rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-surface);color:var(--color-text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}#root{min-height:100vh}.session-expired-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000}.session-expired-modal{background:var(--color-bg-card, #1e1e2e);border-radius:12px;padding:1.5rem 2rem;max-width:360px;width:90%;box-shadow:0 8px 32px #0006}.session-expired-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:600;color:var(--color-text, #fff)}.session-expired-message{margin:0 0 1.25rem;color:var(--color-text-muted, #a0a0a0);font-size:.95rem;line-height:1.4}.session-expired-btn{width:100%;padding:.65rem 1rem;font-size:1rem;font-weight:500;color:#fff;background:var(--color-accent, #e63946);border:none;border-radius:8px;cursor:pointer}.session-expired-btn:hover{filter:brightness(1.1)}.session-expired-btn:focus{outline:2px solid var(--color-accent, #e63946);outline-offset:2px}.sidebar{width:260px;min-height:100vh;background-color:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:width .2s}.sidebar--closed{width:64px}.sidebar--closed .sidebar__brand span,.sidebar--closed .sidebar__link>span,.sidebar--closed .sidebar__user,.sidebar--closed .sidebar__logout>span{display:none}.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--color-border);min-height:56px}.sidebar__brand{font-weight:700;font-size:1.2rem;color:var(--color-text);text-decoration:none}.sidebar__brand:hover{color:var(--color-primary)}.sidebar__toggle{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.sidebar__nav{flex:1;padding:.75rem 0;overflow-y:auto}.sidebar__link{display:block;padding:.6rem 1rem;color:var(--color-text-muted);text-decoration:none;transition:background-color .15s,color .15s;border-left:3px solid transparent}.sidebar__link:hover{color:var(--color-text);background-color:var(--color-surface-hover)}.sidebar__link--active{color:var(--color-primary);background-color:var(--color-surface-hover);border-left-color:var(--color-primary)}.sidebar__footer{padding:1rem;border-top:1px solid var(--color-border)}.sidebar__user{display:block;font-size:.85rem;color:var(--color-text-muted);margin-bottom:.5rem}.sidebar__logout{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 0;text-align:left;font-size:.9rem;color:var(--color-text-muted);background:none;border:none;cursor:pointer}.sidebar__logout:hover{color:var(--color-primary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background-color:var(--color-bg)}.login-card{width:100%;max-width:400px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:2rem}.login-title{font-size:1.75rem;font-weight:700;text-align:center;color:var(--color-text);margin-bottom:.25rem}.login-subtitle{font-size:.95rem;color:var(--color-text-muted);text-align:center;margin-bottom:1.5rem}.login-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--color-text)}.input-wrap{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-input, var(--color-bg))}.input-wrap:focus-within{border-color:var(--color-primary);outline:none}.input-wrap .input-icon{flex-shrink:0;color:var(--color-text-muted)}.input-wrap input{flex:1;min-width:0;border:none;background:none;font-size:1rem;color:var(--color-text)}.input-wrap input::placeholder{color:var(--color-text-muted)}.input-wrap input:focus{outline:none}.login-form .login-btn{margin-top:1rem;padding:.65rem 1rem;width:100%}.page-title--with-icon{display:flex;align-items:center;gap:.5rem}.page-title__icon{color:var(--color-primary)}.dashboard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.dashboard__card{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.25rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;text-decoration:none;color:var(--color-text);transition:background-color .2s,border-color .2s}.dashboard__card-icon{color:var(--color-primary)}.dashboard__card:hover{background-color:var(--color-surface-hover);border-color:var(--color-primary)}.dashboard__card-title{font-weight:600;font-size:1.1rem;margin-bottom:.25rem}.dashboard__card-desc{font-size:.85rem;color:var(--color-text-muted)}.clients-page .clients-placeholder{color:var(--color-text-muted);font-size:.95rem}.clients-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}.clients-refresh-btn{padding:.5rem;background:var(--color-bg-secondary, #1e293b);border:1px solid var(--border-color, #475569);border-radius:6px;color:var(--color-text, #e2e8f0);cursor:pointer;display:flex;align-items:center}.clients-refresh-btn:hover{background:var(--color-bg-primary, #0f172a)}.clients-message{padding:.75rem;margin-bottom:1rem;border-radius:6px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;font-size:.9rem}.clients-message--error{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.clients-table-wrapper{overflow-x:auto;margin-top:1rem}.clients-table{width:100%;border-collapse:collapse;font-size:.9rem}.clients-table thead{background:var(--color-bg-secondary, #1e293b)}.clients-table th{padding:.75rem;text-align:left;font-weight:600;color:var(--color-text, #e2e8f0);border-bottom:2px solid var(--border-color, #475569);white-space:nowrap}.clients-table td{padding:.75rem;border-bottom:1px solid var(--border-color, #475569);color:var(--color-text, #e2e8f0)}.clients-table tbody tr:hover{background:var(--color-bg-secondary, #1e293b)}.status-badge--maintenance{background:#ef444433;color:#f87171;border:1px solid rgba(239,68,68,.4)}.clients-maintenance-btn{background:#475569;color:#fff}.clients-maintenance-btn--active{background:#f43f5e;color:#fff;box-shadow:0 0 10px #f43f5e66}.clients-actions-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;width:fit-content}.clients-token-cell{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.clients-token-value{font-size:.8rem;background:var(--color-bg-secondary, #1e293b);padding:.25rem .4rem;border-radius:4px;word-break:break-all;min-width:4ch}.clients-form__section{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border-color, #334155)}.clients-form__section:first-of-type{margin-top:1rem}.clients-form__section-title{font-size:.9rem;font-weight:600;color:var(--color-text, #e2e8f0);margin:0 0 .25rem}.clients-form__section-desc{font-size:.8rem;color:var(--color-text-muted, #94a3b8);margin:0 0 .75rem}.clients-form__section-inner{background:var(--color-bg-secondary, rgba(30, 41, 59, .5));border-radius:8px;padding:1rem;border:1px solid var(--border-color, #334155)}.clients-form__section-inner .clients-form__row{margin-bottom:0}.clients-form__section-inner .clients-form__row:last-child{margin-bottom:0}.clients-form__hint{font-size:.8rem;color:var(--color-text-muted, #94a3b8);margin:.25rem 0 0}.clients-token-cell .spin{animation:clients-spin .8s linear infinite}@keyframes clients-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.clients-column-toggle-container{display:flex;align-items:center;position:relative;margin-right:.5rem}.clients-column-toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;font-weight:600;background:var(--color-bg-secondary, #1e293b);border:1px solid var(--border-color, #475569);border-radius:6px;color:var(--color-text, #e2e8f0);cursor:pointer;transition:all .2s}.clients-column-toggle-btn:hover{background:var(--color-bg-primary, #0f172a);border-color:var(--color-primary, #6366f1)}.clients-column-toggle-btn.active{background-color:var(--color-primary, #6366f1);border-color:var(--color-primary, #6366f1);color:#fff}.clients-column-popover{position:absolute;top:calc(100% + .5rem);right:0;width:240px;z-index:100;padding:1rem;box-shadow:0 10px 25px #0006}.clients-column-popover-overlay{position:fixed;inset:0;z-index:99;background:transparent}.clients-column-popover-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #475569);font-size:.85rem;color:var(--color-text-muted, #94a3b8)}.clients-column-list{display:flex;flex-direction:column;gap:.4rem}.clients-column-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;cursor:pointer;border-radius:4px;transition:background .2s;font-size:.9rem;color:var(--color-text, #e2e8f0)}.clients-column-item:hover{background-color:var(--color-bg-tertiary, #334155)}.clients-column-item--disabled{opacity:.6;cursor:not-allowed}.clients-column-item input[type=checkbox]{width:16px;height:16px;cursor:inherit}.clients-activate-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;background:var(--color-primary, #6366f1);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.clients-activate-btn:hover{opacity:.9}.clients-remove-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;background:#ef4444;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.clients-remove-btn:hover{opacity:.9}.clients-pause-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;background:#f59e0b;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.clients-pause-btn:hover:not(:disabled){opacity:.9}.clients-pause-btn:disabled{opacity:.6;cursor:not-allowed}.clients-resume-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;background:#22c55e;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.clients-resume-btn:hover:not(:disabled){opacity:.9}.clients-resume-btn:disabled{opacity:.6;cursor:not-allowed}.clients-reset-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;background:#8b5cf6;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.clients-reset-btn:hover:not(:disabled){opacity:.9}.clients-reset-btn:disabled{opacity:.6;cursor:not-allowed}.clients-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.clients-modal{background:var(--color-bg-secondary, #1e293b);border:1px solid var(--border-color, #475569);border-radius:8px;padding:1.5rem;min-width:320px;max-width:500px;width:100%}.clients-modal__title{margin:0 0 .5rem;font-size:1.15rem;color:var(--color-text, #e2e8f0)}.clients-modal__subtitle{margin:0 0 1rem;font-size:.9rem;color:var(--color-text-muted, #94a3b8)}.clients-modal__label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.5rem;color:var(--color-text, #e2e8f0)}.clients-modal__input{width:100%;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--border-color, #475569);border-radius:6px;background:var(--color-bg-input, #0f172a);color:var(--color-text, #e2e8f0);box-sizing:border-box}.clients-modal__toggle-btn{flex:1;padding:.5rem;font-size:.9rem;font-weight:600;border:1px solid var(--border-color, #475569);border-radius:6px;background:var(--color-bg-primary, #0f172a);color:var(--color-text, #e2e8f0);cursor:pointer;transition:all .2s}.clients-modal__toggle-btn:hover{background:var(--color-bg-secondary, #1e293b)}.clients-modal__equivalent{margin-top:.5rem;font-size:.85rem;color:var(--color-text-muted, #94a3b8);font-style:italic}.clients-modal__equivalent strong{color:var(--color-text, #e2e8f0);font-style:normal}.clients-modal__warning{margin-top:.75rem;padding:.75rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:4px;font-size:.9rem;color:#fbbf24;line-height:1.5}.clients-modal__warning strong{color:#f59e0b}.clients-modal__info{margin-top:.75rem;padding:.5rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:4px;font-size:.85rem;color:#60a5fa}.clients-modal__btn{padding:.6rem 1.25rem;font-size:.95rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:opacity .2s}.clients-modal__btn--confirm{background:var(--color-primary, #6366f1);color:#fff}.clients-modal__btn--confirm:hover:not(:disabled){opacity:.9}.clients-modal__btn--danger:hover:not(:disabled){opacity:.9}.clients-modal__btn--cancel{background:var(--color-bg-primary, #0f172a);color:var(--color-text, #e2e8f0);border:1px solid var(--border-color, #475569)}.clients-modal__btn--cancel:hover:not(:disabled){background:var(--color-bg-secondary, #1e293b)}.clients-new-btn{padding:.5rem 1rem;background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:opacity .2s}.clients-new-btn:hover{opacity:.9}.clients-edit-btn,.clients-delete-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.clients-edit-btn{background:#3b82f6;color:#fff}.clients-delete-btn{background:#ef4444;color:#fff}.clients-edit-btn:hover:not(:disabled),.clients-delete-btn:hover:not(:disabled){opacity:.9}.clients-edit-btn:disabled,.clients-delete-btn:disabled{opacity:.6;cursor:not-allowed}.clients-modal--form{max-width:600px}.clients-modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.clients-modal__close{background:none;border:none;color:var(--color-text, #e2e8f0);cursor:pointer;padding:.25rem;display:flex;align-items:center;border-radius:4px;transition:background .2s}.clients-modal__close:hover{background:var(--color-bg-primary, #0f172a)}.clients-form__row{margin-bottom:1rem}.clients-form__label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.5rem;color:var(--color-text, #e2e8f0)}.clients-form__input{width:100%;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--border-color, #475569);border-radius:6px;background:var(--color-bg-input, #0f172a);color:var(--color-text, #e2e8f0);box-sizing:border-box}.clients-form__input:focus{outline:none;border-color:var(--color-primary, #6366f1)}.clients-form__checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:600;color:var(--color-text, #e2e8f0)}.clients-form__checkbox input{width:auto;cursor:pointer}.clients-modal--users{max-width:680px;max-height:90vh;overflow-y:auto}.clients-roles-guide{margin-bottom:1rem;padding:.75rem 1rem;background:var(--color-bg-secondary, rgba(30, 41, 59, .6));border:1px solid var(--border-color, #334155);border-radius:8px}.clients-roles-guide__title{font-size:.85rem;font-weight:600;color:var(--color-text, #e2e8f0);margin:0 0 .5rem}.clients-roles-guide__list{margin:0;padding-left:1.1rem;font-size:.8rem;line-height:1.5;color:var(--color-text-muted, #94a3b8)}.clients-roles-guide__item{margin-bottom:.35rem}.clients-roles-guide__item strong{color:var(--color-text, #e2e8f0);font-weight:600}.clients-users-table-wrap{overflow-x:auto;margin-bottom:.5rem}.clients-users-table-wrap .clients-table{font-size:.9rem}.clients-users-password-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.clients-new-user-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #334155)}.clients-users-pagination{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem;margin-bottom:.5rem;justify-content:center}.clients-users-page-btn{min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border-color, #475569);border-radius:6px;background:var(--color-bg-secondary, #1e293b);color:var(--color-text, #e2e8f0);font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s}.clients-users-page-btn:hover:not(:disabled){background:var(--color-bg-primary, #0f172a);border-color:var(--color-primary, #6366f1)}.clients-users-page-btn--active{background:var(--color-primary, #6366f1);border-color:var(--color-primary, #6366f1);color:#fff}.clients-users-page-btn:disabled{opacity:.6;cursor:not-allowed}.memberships-page .memberships-placeholder{color:var(--color-text-muted);font-size:.95rem}.memberships-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}.memberships-refresh-btn{padding:.5rem;background:var(--color-bg-secondary, #1e293b);border:1px solid var(--border-color, #475569);border-radius:6px;color:var(--color-text, #e2e8f0);cursor:pointer;display:flex;align-items:center}.memberships-refresh-btn:hover{background:var(--color-bg-primary, #0f172a)}.memberships-filters{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;font-size:.9rem;font-weight:600;border:1px solid var(--border-color, #475569);border-radius:6px;background:var(--color-bg-primary, #0f172a);color:var(--color-text, #e2e8f0);cursor:pointer;transition:all .2s}.filter-btn:hover:not(:disabled){background:var(--color-bg-secondary, #1e293b)}.filter-btn--active{background:var(--color-primary, #6366f1);border-color:var(--color-primary, #6366f1);color:#fff}.filter-btn--refresh{margin-left:auto;padding:.5rem;display:flex;align-items:center}.memberships-message{padding:.75rem;margin-bottom:1rem;border-radius:6px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;font-size:.9rem}.memberships-message--error{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.memberships-table-wrapper{overflow-x:auto;margin-top:1rem}.memberships-table{width:100%;border-collapse:collapse;font-size:.9rem}.memberships-table thead{background:var(--color-bg-secondary, #1e293b)}.memberships-table th{padding:.75rem;text-align:left;font-weight:600;color:var(--color-text, #e2e8f0);border-bottom:2px solid var(--border-color, #475569);white-space:nowrap}.memberships-table td{padding:.75rem;border-bottom:1px solid var(--border-color, #475569);color:var(--color-text, #e2e8f0)}.memberships-table tbody tr:hover{background:var(--color-bg-secondary, #1e293b)}.status-badge{display:inline-flex;align-items:center;font-weight:600;font-size:.85rem;padding:.25rem .5rem;border-radius:4px}.status-badge--active{background:#22c55e1a;color:#22c55e}.status-badge--inactive{background:#ef44441a;color:#ef4444}.status-badge--free{background:#94a3b81a;color:#94a3b8}.status-badge--paused{background:#f59e0b1a;color:#f59e0b}.memberships-actions-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.memberships-activate-btn,.memberships-remove-btn,.memberships-pause-btn,.memberships-resume-btn,.memberships-reset-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.memberships-activate-btn{background:#22c55e;color:#fff}.memberships-remove-btn{background:#f59e0b;color:#fff}.memberships-pause-btn{background:#6366f1;color:#fff}.memberships-resume-btn{background:#10b981;color:#fff}.memberships-reset-btn{background:#a855f7;color:#fff}.memberships-activate-btn:hover:not(:disabled),.memberships-remove-btn:hover:not(:disabled),.memberships-pause-btn:hover:not(:disabled),.memberships-resume-btn:hover:not(:disabled),.memberships-reset-btn:hover:not(:disabled){opacity:.9}.memberships-activate-btn:disabled,.memberships-remove-btn:disabled,.memberships-pause-btn:disabled,.memberships-resume-btn:disabled,.memberships-reset-btn:disabled{opacity:.6;cursor:not-allowed}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:opacity .2s}.action-btn:hover:not(:disabled){opacity:.9}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn--approve{background:#22c55e;color:#fff}.action-btn--reject{background:#ef4444;color:#fff}.clients-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.clients-modal{background:var(--color-bg-card, #1e293b);border:1px solid var(--border-color, #475569);border-radius:8px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.clients-modal__title{margin:0 0 .5rem;font-size:1.25rem;color:var(--color-text, #e2e8f0)}.clients-modal__subtitle{margin:0 0 1.5rem;color:var(--color-text-secondary, #94a3b8);font-size:.9rem}.clients-modal__form{margin-bottom:1.5rem}.clients-modal__mode-indicator{margin-bottom:1rem}.clients-modal__mode-badge{margin:0;padding:.6rem 1rem;border-radius:6px;font-size:.95rem;font-weight:500}.clients-modal__mode-badge--days{background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#22c55e}.clients-modal__mode-badge--months{background:#f59e0b26;border:1px solid rgba(245,158,11,.5);color:#f59e0b}.clients-modal__mode-badge strong{font-weight:700}.clients-modal__toggle{display:flex;gap:.5rem;margin-bottom:1rem}.clients-modal__toggle-btn{flex:1;padding:.5rem 1rem;border:1px solid var(--border-color, #475569);background:var(--color-bg-primary, #0f172a);color:var(--color-text, #e2e8f0);border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.clients-modal__toggle-btn--active{background:var(--color-primary, #6366f1);border-color:var(--color-primary, #6366f1);color:#fff}.clients-modal__toggle-btn--active.clients-modal__toggle-btn--days{background:#22c55e;border-color:#22c55e}.clients-modal__toggle-btn--active.clients-modal__toggle-btn--months{background:#f59e0b;border-color:#f59e0b;color:#1e293b}.clients-modal__label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text, #e2e8f0);font-size:.9rem}.clients-modal__input{width:100%;padding:.75rem;border:1px solid var(--border-color, #475569);border-radius:6px;background:var(--color-bg-primary, #0f172a);color:var(--color-text, #e2e8f0);font-size:1rem}.clients-modal__input:focus{outline:none;border-color:var(--color-primary, #6366f1)}.clients-modal__equivalent{margin-top:.5rem;font-size:.85rem;color:var(--color-text-secondary, #94a3b8)}.clients-modal__info{margin-top:1rem;padding:.75rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;font-size:.85rem;color:#3b82f6;line-height:1.6}.clients-modal__warning{margin-top:1rem;padding:.75rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px;font-size:.85rem;color:#f59e0b;line-height:1.6}.clients-modal__actions{display:flex;gap:.75rem;justify-content:flex-end}.clients-modal__btn{padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:opacity .2s}.clients-modal__btn--confirm{background:#22c55e;color:#fff}.clients-modal__btn--danger{background:#ef4444;color:#fff}.clients-modal__btn--cancel{background:var(--color-bg-secondary, #1e293b);color:var(--color-text, #e2e8f0);border:1px solid var(--border-color, #475569)}.clients-modal__btn:hover:not(:disabled){opacity:.9}.clients-modal__btn:disabled{opacity:.6;cursor:not-allowed}.clients-modal__header--sticky{position:sticky;top:-2rem;background:var(--color-bg-card, #1e293b);z-index:20;padding:1rem 0;margin:-2rem 0 1.5rem;border-bottom:1px solid var(--border-color, #475569);display:flex;justify-content:space-between;align-items:flex-start}.clients-modal__close-btn{background:none;border:none;color:var(--color-text-secondary, #94a3b8);cursor:pointer;padding:.5rem;margin-top:-.5rem;margin-right:-.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.clients-modal__close-btn:hover{background:#ffffff1a;color:var(--color-text, #e2e8f0)}.points-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.point-item{background:var(--color-bg-primary, #0f172a);border:1px solid var(--border-color, #475569);border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center;transition:border-color .2s}.point-item:hover{border-color:var(--color-primary, #6366f1)}.point-info{display:flex;flex-direction:column;gap:.25rem}.point-name{font-weight:700;color:var(--color-text, #e2e8f0)}.point-meta{font-size:.8rem;color:var(--color-text-secondary, #94a3b8)}.point-actions{display:flex;align-items:center;gap:.75rem}.point-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;font-weight:600}.point-badge--vip{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.point-badge--free{background:#94a3b826;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}.point-add-btn{padding:.4rem;background:var(--color-bg-secondary, #1e293b);border:1px solid var(--border-color, #475569);color:var(--color-text, #e2e8f0);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.point-add-btn:hover{background:var(--color-primary, #6366f1);border-color:var(--color-primary, #6366f1);color:#fff}.sync-all-container{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #475569)}.sync-all-btn{width:100%;padding:.75rem;background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:6px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .2s}.sync-all-btn:hover:not(:disabled){background:#4f46e5}.sync-all-btn:disabled{opacity:.6;cursor:not-allowed}.point-days-remaining{font-size:.8rem;font-weight:600}.point-days-remaining--critical{color:#ef4444}.point-days-remaining--good{color:#22c55e}.payments-page .payments-placeholder{color:var(--color-text-muted);font-size:.95rem}.settings-page .settings-card{max-width:32rem}.settings-card__title{font-size:1.1rem;margin:0 0 .5rem;color:var(--color-text, #1a1a1a)}.settings-card__desc{color:var(--color-text-muted, #666);font-size:.95rem;margin:0 0 1.25rem;line-height:1.4}.settings-form{display:flex;flex-direction:column;gap:.75rem}.settings-form__label{font-weight:600;font-size:.9rem}.settings-form__select{padding:.5rem .75rem;font-size:1rem;border:1px solid var(--color-border, #ccc);border-radius:6px;background:var(--color-bg, #fff);color:var(--color-text, #1a1a1a)}.settings-form__btn{align-self:flex-start;padding:.5rem 1.25rem;font-size:.95rem;font-weight:600;border:none;border-radius:6px;background:var(--color-primary, #2563eb);color:#fff;cursor:pointer}.settings-form__btn:hover:not(:disabled){opacity:.9}.settings-form__btn:disabled{opacity:.6;cursor:not-allowed}.settings-message{margin-top:1rem;font-size:.9rem;color:var(--color-success, #059669)}.settings-message--error{color:var(--color-error, #dc2626)}.admin-tickets-page{max-width:1200px;margin:0 auto;padding:1.5rem 1.5rem 3rem}.admin-tickets-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start}.admin-card{background:var(--color-surface, #0f172a);border-radius:14px;padding:1.25rem 1.5rem;border:1px solid rgba(148,163,184,.35)}.admin-card__title{margin:0 0 .4rem;font-size:1.1rem}.admin-card__desc{margin:0 0 1rem;font-size:.9rem;color:var(--color-text-muted, #94a3b8)}.admin-tickets-filter-list,.admin-tickets-client-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.admin-tickets-filter-btn,.admin-tickets-client-btn{display:flex;justify-content:space-between;align-items:center;padding:.6rem .9rem;border-radius:8px;background:#1e293b80;border:1px solid rgba(148,163,184,.2);color:#e2e8f0;cursor:pointer;text-align:left;transition:all .2s;font-size:.85rem}.admin-tickets-filter-btn:hover,.admin-tickets-client-btn:hover{background:#1e293bcc;border-color:#3b82f680}.admin-tickets-filter-btn.active,.admin-tickets-client-btn.active{background:#3b82f633;border-color:#3b82f6;color:#fff}.admin-tickets-filter-btn__count,.admin-tickets-client-btn__count{font-size:.75rem;background:#1e293bcc;padding:.1rem .5rem;border-radius:999px;color:#94a3b8}.admin-tickets-item__actions{display:flex;align-items:center;gap:.75rem}.admin-tickets-delete-btn{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.2);padding:.4rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.admin-tickets-delete-btn:hover:not(:disabled){background:#ef444440;border-color:#ef444466}.admin-tickets-delete-btn:disabled{opacity:.5;cursor:not-allowed}.admin-tickets-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.admin-tickets-comment-toggle{background:none;border:1px solid rgba(148,163,184,.2);color:var(--color-text-muted);font-size:.75rem;padding:.25rem .75rem;border-radius:6px;cursor:pointer;margin-left:auto;transition:all .2s}.admin-tickets-comment-toggle:hover{border-color:var(--color-primary);color:var(--color-primary);background:#3b82f60d}.admin-tickets-comments-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(148,163,184,.1);display:flex;flex-direction:column;gap:1.25rem}.admin-tickets-comments-list{display:flex;flex-direction:column;gap:1rem;max-height:350px;overflow-y:auto;padding-right:.5rem}.admin-tickets-comment{max-width:90%;padding:.8rem 1rem;border-radius:12px;font-size:.9rem;line-height:1.5}.admin-tickets-comment.is-admin{align-self:flex-end;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:#eff6ff;border-bottom-right-radius:2px}.admin-tickets-comment.is-user{align-self:flex-start;background:#1e293b80;border:1px solid rgba(148,163,184,.1);color:#f1f5f9;border-bottom-left-radius:2px}.admin-tickets-comment__header{display:flex;justify-content:space-between;gap:1.5rem;margin-bottom:.4rem;font-size:.75rem;opacity:.8}.admin-tickets-comment__header strong{color:#60a5fa}.admin-tickets-comment.is-admin .admin-tickets-comment__header strong{color:#fca5a5}.admin-tickets-comment-form{display:flex;gap:.75rem;margin-top:.5rem}.admin-tickets-comment-form input{flex:1;background:#0003;border:1px solid rgba(148,163,184,.2);color:#fff;padding:.65rem 1rem;border-radius:8px;font-size:.9rem}.admin-tickets-comment-form button{background:var(--color-primary);color:#fff;border:none;padding:.65rem 1.25rem;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .1s}.admin-tickets-comment-form button:hover{filter:brightness(1.1);transform:translateY(-1px)}.admin-tickets-list{display:flex;flex-direction:column;gap:1rem}.admin-tickets-item{padding:1rem 1.25rem;border-radius:12px;background:#0f172acc;border:1px solid rgba(148,163,184,.25);transition:transform .2s}.admin-tickets-item:hover{border-color:#3b82f666}.admin-tickets-item__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.admin-tickets-item__tenant{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.025em;color:#3b82f6;background:#3b82f626;padding:.1rem .5rem;border-radius:4px;margin-bottom:.3rem}.admin-tickets-item__title{margin:0;font-size:1.05rem;color:#f1f5f9}.admin-tickets-item__description{margin:0 0 1rem;font-size:.9rem;color:#cbd5e1;line-height:1.5}.admin-tickets-item__footer{padding-top:.75rem;border-top:1px solid rgba(148,163,184,.15)}.admin-tickets-item__meta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;font-size:.8rem;color:#94a3b8}.admin-tickets-status-select{padding:.35rem .6rem;border-radius:8px;font-size:.8rem;font-weight:600;border:1px solid transparent;background:#0f172ae6;color:#fff;cursor:pointer;outline:none}.admin-tickets-status-select.status--abierto{background:#3b82f633;color:#93c5fd;border-color:#3b82f64d}.admin-tickets-status-select.status--en_progreso{background:#eab30833;color:#fde047;border-color:#eab3084d}.admin-tickets-status-select.status--resuelto{background:#22c55e33;color:#86efac;border-color:#22c55e4d}.admin-tickets-priority{padding:.15rem .6rem;border-radius:6px;font-weight:500}.admin-tickets-priority--alta{background:#ef444426;color:#f87171}.admin-tickets-priority--media{background:#3b82f626;color:#60a5fa}.admin-tickets-priority--baja{background:#22c55e26;color:#4ade80}@media(max-width:1024px){.admin-tickets-layout{grid-template-columns:1fr}.admin-tickets-sidebar{display:none}}.not-found{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.not-found__title{font-size:4rem;font-weight:700;color:var(--color-text-muted);margin-bottom:.5rem}.not-found__text{color:var(--color-text-muted);margin-bottom:1.5rem}.not-found__link{text-decoration:none}.app{min-height:100vh}.app--with-sidebar{display:flex}.app__main{flex:1;padding:1.5rem;overflow:auto}.page-header{margin-bottom:1.5rem}.page-title{font-size:1.5rem;font-weight:600;color:var(--color-text)}.page-subtitle{font-size:.9rem;color:var(--color-text-muted);margin-top:.25rem}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem;margin-bottom:1rem}.card__title{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text)}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.35rem;color:var(--color-text)}.form-group input{width:100%}.error-message{color:#f87171;font-size:.9rem;margin-top:.5rem}
