.login{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.login__card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px;width:320px}.login__header{text-align:center;margin-bottom:28px}.login__logo{width:40px;height:40px;object-fit:contain;margin-bottom:12px}.login__title{font-size:22px;font-weight:600;color:var(--orange);margin:0}.login__subtitle{font-size:11px;color:var(--text-dim);margin-top:4px}.login__form{display:flex;flex-direction:column;gap:10px}.login__form input{width:100%}.login__error{font-size:11px;color:var(--red);margin:0}.login__btn{margin-top:6px;background:var(--orange);color:var(--bg);border:none;font-weight:600;padding:10px}.login__btn:hover:not(:disabled){background:#e9a06e}.login__btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 760px){.login__card{width:90vw;padding:30px 20px}}.navbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border-soft);position:sticky;top:0;z-index:100}.navbar__brand{display:flex;align-items:center;gap:10px}.navbar__logo{width:24px;height:24px;object-fit:contain}.navbar__title{font-size:16px;font-weight:600;color:var(--orange)}.navbar__subtitle{font-size:11px;color:var(--text-dim)}.navbar__right{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text-dim)}.navbar__user{color:var(--blue);font-size:10px}.navbar__clock{color:var(--orange);font-weight:500}.navbar__logout{font-size:10px;padding:4px 10px;border:1px solid var(--border);background:transparent;color:var(--text-dim)}.navbar__logout:hover{color:var(--red);border-color:var(--red)}.navbar__theme{font-size:14px;padding:4px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:var(--radius)}.navbar__theme:hover{color:var(--orange);border-color:var(--orange)}@media (max-width: 760px){.navbar{padding:10px 12px}.navbar__subtitle,.navbar__date,.navbar__user{display:none}.navbar__title{font-size:14px}.navbar__right{gap:8px}}.sidebar{width:180px;min-width:180px;background:var(--panel);border-right:1px solid var(--border-soft);padding:16px 0;overflow-y:auto}.sidebar__list{list-style:none;display:flex;flex-direction:column;gap:2px}.sidebar__btn{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:10px 16px;border:none;border-radius:0;background:transparent;color:var(--text-dim);font-size:12px;transition:color .15s,background .15s}.sidebar__btn:hover:not(:disabled){background:var(--panel-2);color:var(--text)}.sidebar__btn--active{color:var(--orange);background:var(--panel-2);border-left:2px solid var(--orange)}.sidebar__btn--disabled{color:var(--text-faint);cursor:not-allowed}.sidebar__icon{font-size:14px;width:18px;text-align:center}@media (max-width: 760px){.sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border-soft);padding:8px 0;overflow-x:auto;overflow-y:hidden}.sidebar__list{flex-direction:row;gap:0;padding:0 8px}.sidebar__btn{padding:8px 12px;white-space:nowrap}.sidebar__btn--active{border-left:none;border-bottom:2px solid var(--orange)}}.stat-line{display:flex;flex-wrap:wrap;gap:20px;padding:16px 20px;background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);margin-bottom:20px}.stat-line__item{display:flex;flex-direction:column;gap:2px}.stat-line__label{font-size:10px;color:var(--text-faint);text-transform:lowercase}.stat-line__value{font-size:18px;font-weight:600;color:var(--text)}.stat-line__value--orange{color:var(--orange)}.stat-line__value--green{color:var(--green)}.stat-line__value--blue{color:var(--blue)}.stat-line__value--red{color:var(--red)}@media (max-width: 760px){.stat-line{gap:12px;padding:12px 14px}.stat-line__item{min-width:60px}.stat-line__value{font-size:15px}}.chart-card{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column}.chart-card__title{font-size:11px;font-weight:500;color:var(--text-dim);margin-bottom:12px;text-transform:lowercase}.chart-card__canvas{flex:1;min-height:140px;position:relative}.chart-card__empty{color:var(--text-faint);font-size:11px;text-align:center;padding-top:60px}.active-task{margin-top:20px;padding:20px;background:var(--panel);border:1px solid var(--orange);border-radius:var(--radius)}.active-task--empty{border-color:var(--border-soft);text-align:center;padding:30px}.active-task__empty-text{color:var(--text-faint);font-size:12px}.active-task__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.active-task__label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.active-task__badge{font-size:9px;padding:2px 8px;border-radius:2px;font-weight:600;text-transform:uppercase;color:var(--bg);background:var(--orange)}.active-task__name{font-size:16px;font-weight:600;color:var(--text);margin-bottom:10px}.active-task__timer{display:flex;align-items:center;gap:8px;margin-bottom:10px}.active-task__timer-icon{font-size:14px}.active-task__timer-value{font-size:24px;font-weight:700;color:var(--orange);font-variant-numeric:tabular-nums}.active-task__meta{font-size:11px;color:var(--text-dim)}.active-task__client{color:var(--blue)}.active-task__client-icon{width:16px;height:16px;border-radius:2px;vertical-align:middle;margin-right:4px}.active-task__hora{color:var(--orange);font-weight:500}.active-task__notes{list-style:none;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-soft)}.active-task__notes li{font-size:11px;color:var(--text-dim);padding:2px 0}.active-task__note--done{text-decoration:line-through;color:var(--text-faint)}@media (max-width: 760px){.active-task{padding:14px;margin-top:14px}.active-task__name{font-size:14px}.active-task__timer-value{font-size:20px}}.queue-row{padding:12px;border:1px solid var(--border-soft);border-radius:var(--radius);margin-bottom:8px;background:var(--panel-2);transition:border-color .15s}.queue-row:hover{border-color:var(--border)}.queue-row--progreso{border-color:var(--orange);background:#dd8f5c0d}.queue-row--highlighted{border-color:var(--orange);box-shadow:0 0 12px #dd8f5c66,0 0 4px #dd8f5c33;animation:highlight-glow 2s ease-in-out}@keyframes highlight-glow{0%{box-shadow:0 0 20px #dd8f5c99,0 0 8px #dd8f5c66}to{box-shadow:0 0 12px #dd8f5c66,0 0 4px #dd8f5c33}}.queue-row__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.queue-row__name{font-size:12px;font-weight:500;color:var(--text)}.queue-row__badge{font-size:9px;padding:2px 6px;border-radius:2px;font-weight:600;text-transform:uppercase}.queue-row__badge--pendiente{color:var(--orange);border:1px solid var(--orange)}.queue-row__badge--en_progreso{color:var(--bg);background:var(--orange);border:1px solid var(--orange)}.queue-row__badge--completada{color:var(--green);border:1px solid var(--green)}.queue-row__badge--vencida{color:var(--red);border:1px solid var(--red)}.queue-row__timer{display:flex;align-items:center;gap:6px;margin:6px 0;padding:4px 8px;background:#dd8f5c1a;border-radius:var(--radius);width:fit-content}.queue-row__timer-icon{font-size:12px}.queue-row__timer-value{font-size:14px;font-weight:600;color:var(--orange);font-variant-numeric:tabular-nums}.queue-row__meta{font-size:10px;color:var(--text-dim);margin-bottom:8px}.queue-row__client{color:var(--blue)}.queue-row__client-icon{width:14px;height:14px;border-radius:2px;vertical-align:middle;margin-right:3px}.queue-row__hora{color:var(--orange);font-weight:500}.queue-row__meet{display:inline-block;margin:6px 0;padding:3px 8px;font-size:10px;color:var(--blue);border:1px solid var(--blue);border-radius:var(--radius);text-decoration:none;transition:background .15s}.queue-row__meet:hover{background:#7ea6d626}.queue-row__real-hours{color:var(--green)}.queue-row__notes{margin:8px 0;padding:6px 8px;background:#0a0c1180;border:1px solid var(--border-soft);border-radius:var(--radius)}.queue-row__notes-list{list-style:none;margin-bottom:4px}.queue-row__note{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:11px;color:var(--text-dim)}.queue-row__note--done .queue-row__note-text{text-decoration:line-through;color:var(--text-faint)}.queue-row__note-check{background:none;border:none;padding:0;font-size:12px;color:var(--text-dim);cursor:pointer;line-height:1}.queue-row__note-check:hover{color:var(--green)}.queue-row__note-text{flex:1}.queue-row__note-del{background:none;border:none;padding:0 2px;font-size:9px;color:var(--text-faint);cursor:pointer;opacity:0;transition:opacity .15s}.queue-row__note:hover .queue-row__note-del{opacity:1}.queue-row__note-del:hover{color:var(--red)}.queue-row__note-form{margin-top:4px}.queue-row__note-input{width:100%;padding:4px 6px;font-size:10px;background:var(--panel);border:1px solid var(--border-soft);border-radius:2px}.queue-row__note-input:focus{border-color:var(--orange)}.queue-row__actions{display:flex;gap:8px}.queue-row__action{font-size:10px;padding:4px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim)}.queue-row__action:hover{color:var(--text);border-color:var(--text-dim)}.queue-row__action--start{color:var(--orange);border-color:var(--orange)}.queue-row__action--start:hover{background:var(--orange);color:var(--bg)}.queue-row__action--complete{color:var(--green);border-color:var(--green)}.queue-row__action--complete:hover{background:var(--green);color:var(--bg)}.queue-row__action--delete:hover{color:var(--red);border-color:var(--red)}.queue-row__action--edit{color:var(--blue);border-color:var(--blue)}.queue-row__action--edit:hover{background:var(--blue);color:var(--bg)}.queue-row__action--save{color:var(--green);border-color:var(--green)}.queue-row__action--save:hover{background:var(--green);color:var(--bg)}.queue-row--editing{border-color:var(--blue)}.queue-row__edit-form{display:flex;flex-direction:column;gap:6px}.queue-row__edit-form input{width:100%;font-size:11px;padding:6px 8px}.queue-row__edit-row{display:flex;gap:6px}.queue-row__edit-row input{flex:1}.queue-row__edit-actions{display:flex;gap:8px;margin-top:4px}.queue-row--completada .queue-row__name{text-decoration:line-through;color:var(--text-dim)}@media (max-width: 760px){.queue-row{padding:10px}.queue-row__name{font-size:11px}.queue-row__meta{font-size:9px}.queue-row__actions{flex-wrap:wrap;gap:6px}.queue-row__action{font-size:9px;padding:4px 6px}.queue-row__timer-value{font-size:12px}}.filter-pills{display:flex;gap:6px;margin-bottom:12px}.filter-pills__btn{padding:5px 10px;font-size:11px;border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:var(--radius)}.filter-pills__btn:hover{color:var(--text);border-color:var(--text-dim)}.filter-pills__btn--active{background:var(--orange);color:var(--bg);border-color:var(--orange);font-weight:500}.add-form{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.add-form input{width:100%}.add-form__row{display:flex;gap:8px}.add-form__row input{flex:1}.add-form__btn{margin-top:4px;background:var(--orange);color:var(--bg);border:none;font-weight:600;padding:10px}.add-form__btn:hover{background:#e9a06e}@media (max-width: 760px){.add-form__row{flex-wrap:wrap}.add-form__row input,.add-form__row select{min-width:80px}}.queue-panel{display:flex;flex-direction:column;height:100%}.queue-panel__title{font-size:13px;font-weight:600;color:var(--orange);margin-bottom:14px;text-transform:lowercase}.queue-panel__list{list-style:none;flex:1;overflow-y:auto;margin-bottom:12px}.queue-panel__empty{color:var(--text-faint);font-size:11px;text-align:center;padding:40px 0}.queue-panel__clear{margin-top:auto;padding:8px;font-size:11px;border:1px solid var(--border);background:transparent;color:var(--text-faint)}.queue-panel__clear:hover{color:var(--red);border-color:var(--red)}.queue-panel__clear--confirm{color:var(--red);border-color:var(--red);background:#c96a5c1a}.queue-panel__fab{position:sticky;bottom:16px;align-self:flex-end;width:48px;height:48px;border-radius:50%;background:var(--orange);color:var(--bg);border:none;font-size:24px;font-weight:700;line-height:1;box-shadow:0 4px 12px #dd8f5c66;transition:transform .15s,box-shadow .15s;z-index:10}.queue-panel__fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #dd8f5c80}.queue-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.queue-modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:360px;max-width:90vw;max-height:90vh;overflow-y:auto}.queue-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.queue-modal__title{font-size:14px;font-weight:600;color:var(--orange)}.queue-modal__close{background:none;border:none;color:var(--text-dim);font-size:16px;padding:4px 8px;cursor:pointer}.queue-modal__close:hover{color:var(--red)}@media (max-width: 760px){.queue-panel__title{font-size:12px}.queue-modal{width:95vw;padding:18px}.queue-panel__fab{width:44px;height:44px;font-size:22px}}.week-cal{display:flex;flex-direction:column;height:100%;overflow:hidden}.week-cal__header{display:flex;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:2}.week-cal__header .week-cal__time-col{width:50px;min-width:50px}.week-cal__day-header{flex:1;text-align:center;padding:10px 4px;border-left:1px solid var(--border-soft)}.week-cal__day-header--today{background:#dd8f5c14}.week-cal__day-name{display:block;font-size:10px;color:var(--text-dim);text-transform:uppercase}.week-cal__day-date{display:block;font-size:12px;font-weight:600;color:var(--text);margin-top:2px}.week-cal__day-header--today .week-cal__day-date{color:var(--orange)}.week-cal__body{display:flex;flex:1;overflow-y:auto}.week-cal__time-col{width:50px;min-width:50px}.week-cal__time-label{height:60px;display:flex;align-items:flex-start;justify-content:flex-end;padding-right:8px;font-size:9px;color:var(--text-faint);position:relative;top:-6px}.week-cal__day-col{flex:1;position:relative;border-left:1px solid var(--border-soft)}.week-cal__day-col--today{background:#dd8f5c08}.week-cal__cell{height:60px;border-bottom:1px solid var(--border-soft)}.week-cal__task{position:absolute;border-radius:var(--radius);padding:3px 6px;overflow:hidden;cursor:pointer;z-index:1;display:flex;flex-direction:column;gap:1px;transition:transform .1s;box-sizing:border-box}.week-cal__task:hover{transform:scale(1.02);z-index:2}.week-cal__task--pendiente{background:#dd8f5c26;border-left:3px solid var(--orange)}.week-cal__task--progreso{background:#dd8f5c40;border-left:3px solid var(--orange);animation:task-pulse 2s ease-in-out infinite}@keyframes task-pulse{0%,to{opacity:1}50%{opacity:.7}}.week-cal__task--completada{background:#7fbf7f1f;border-left:3px solid var(--green);opacity:.7}.week-cal__task-name{font-size:10px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-cal__task-time{font-size:9px;color:var(--text-dim)}.week-cal__task--completada .week-cal__task-name{text-decoration:line-through;color:var(--text-dim)}@media (max-width: 760px){.week-cal__header,.week-cal__body{min-width:600px}.week-cal{overflow-x:auto}.week-cal__day-header{padding:8px 2px}.week-cal__day-name{font-size:9px}.week-cal__day-date{font-size:10px}.week-cal__task-name{font-size:9px}.week-cal__task-time{font-size:8px}}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app__body{display:flex;flex:1;overflow:hidden}.app__main{flex:1;padding:20px;overflow-y:auto}.app__charts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.app__queue{width:520px;min-width:520px;padding:20px;background:var(--panel);border-left:1px solid var(--border-soft);overflow-y:auto;position:sticky;top:0;height:calc(100vh - 49px)}.app-loading{display:flex;align-items:center;justify-content:center;gap:12px;height:100vh;color:var(--text-dim);font-size:13px}.app-loading__dot{width:8px;height:8px;border-radius:50%;background:var(--orange);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.app-error{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#c96a5c1a;border-bottom:1px solid var(--red);color:var(--red);font-size:11px}.app-error button{background:none;border:none;color:var(--red);font-size:14px;padding:2px 6px}@media (max-width: 1180px){.app__body{flex-direction:column;overflow-y:auto}.app__queue{width:100%;min-width:unset;height:auto;position:static;border-left:none;border-top:1px solid var(--border-soft)}.app__charts{grid-template-columns:1fr 1fr}}@media (max-width: 760px){.app{height:auto;min-height:100vh;overflow:auto}.app__body{flex-direction:column;overflow-y:auto;overflow-x:hidden}.app__main{padding:12px}.app__charts{grid-template-columns:1fr;gap:10px}.app__queue{width:100%;min-width:unset;height:auto;position:static;border-left:none;border-top:1px solid var(--border-soft);padding:14px}}:root{--bg: #0a0c11;--panel: #0d1016;--panel-2: #12151c;--border: #242933;--border-soft: #1a1e26;--text: #d7dae0;--text-dim: #7a8194;--text-faint: #454b58;--orange: #dd8f5c;--green: #7fbf7f;--blue: #7ea6d6;--red: #c96a5c;--font: "JetBrains Mono", monospace;--radius: 4px}[data-theme=light]{--bg: #f5f0e8;--panel: #faf7f2;--panel-2: #eee9e0;--border: #c9c1b4;--border-soft: #ddd7cc;--text: #2c2a26;--text-dim: #6b6560;--text-faint: #9c958d;--orange: #c47a3c;--green: #4a9e4a;--blue: #4a7fb5;--red: #b84f3f}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.5}button{font-family:var(--font);cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);color:var(--text);font-size:12px;padding:6px 12px;transition:background .15s,border-color .15s}button:hover{background:var(--border)}input,select{font-family:var(--font);font-size:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:8px 10px;outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--orange)}input::placeholder{color:var(--text-faint)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
