:root { --bs-primary: #0a6b78; --bs-primary-rgb: 10,107,120; }
body { background: #f4f7f8; color: #1f2933; }
.auth-card { max-width: 28rem; border-radius: 1rem; }
.card { border-radius: 1rem; }
.card-action { color: #1f2933; min-height: 8rem; }
.card-action:hover { color: var(--bs-primary); outline: 2px solid rgba(var(--bs-primary-rgb), .25); }
.bottom-nav { position: fixed; z-index: 1030; top: 0; bottom: 0; left: 0; width: 5.75rem; padding: 5.25rem .35rem 1rem; font-size: .72rem; color: #667085; }
.bottom-nav .container { height: 100%; flex-direction: column !important; justify-content: flex-start !important; gap: 1rem; padding: 0; }
.bottom-nav a, .bottom-nav span { width: 100%; padding: .65rem .15rem; text-align: center; text-decoration: none; color: inherit; border-radius: .65rem; }
.bottom-nav .active { color: var(--bs-primary); font-weight: 700; }
.bottom-nav .active { background: rgba(var(--bs-primary-rgb), .12); }
body { padding-left: 5.75rem; }
.nav-toggle { position: fixed; z-index: 1035; top: 1rem; left: 1rem; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; border-radius: 50%; background: transparent !important; color: var(--bs-primary); font-size: 1.35rem; line-height: 1; }
.nav-toggle:hover, .nav-toggle:focus, .nav-toggle:active { background: transparent !important; color: var(--bs-primary); box-shadow: none !important; }
body.nav-hidden { padding-left: 0; }
body.nav-hidden .bottom-nav { transform: translateX(-100%); }
body.nav-hidden .nav-toggle { left: .75rem; }
body.nav-hidden .navbar .container { padding-left: 4.25rem; }
.bottom-nav { transition: transform .2s ease; }
.bottom-nav .theme-toggle { width: 100%; margin-top: auto; padding: .55rem .15rem; border-radius: .65rem; font-size: .72rem; }
[data-bs-theme="dark"] body { background: #172029; color: #edf3f5; }
[data-bs-theme="dark"] .bottom-nav, [data-bs-theme="dark"] .navbar { background: #202b35 !important; }
.agenda-item { border-left: 4px solid var(--bs-primary); }
.dashboard-icon-action { width: 2.5rem; height: 2.5rem; padding: .5rem; display: inline-grid; place-items: center; border-radius: 50%; }
.dashboard-icon-action svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-icon-action.btn-primary, .dashboard-icon-action.btn-outline-primary { color: #198754; background-color: transparent; border-color: #198754; }
.dashboard-icon-action.btn-primary:hover, .dashboard-icon-action.btn-outline-primary:hover, .dashboard-icon-action.btn-primary:focus, .dashboard-icon-action.btn-outline-primary:focus { color: #146c43; background-color: rgba(25, 135, 84, .12); border-color: #146c43; }
.photo-thumb { aspect-ratio: 1; object-fit: cover; }
.photo-thumb { cursor: pointer; }
.photo-thumb.photo-selected { outline: 3px solid var(--bs-primary); outline-offset: -3px; }
.photo-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: 1rem; }
.photo-comparison img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: .75rem; }
.notes-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(14rem,1fr)); gap:1rem; }.postit { min-height:13rem; padding:1rem; border:0; border-radius:.4rem; box-shadow:.2rem .3rem .6rem rgba(0,0,0,.18); transform:rotate(-.5deg); color:#1f2933; }.postit textarea { width:100%; border:0; background:transparent; color:#1f2933 !important; resize:vertical; font-family:inherit; }.postit select { width:100%; border:0; background:rgba(255,255,255,.35); color:#1f2933; }.postit-amarillo{background:#fff3a6}.postit-rosa{background:#ffc6d5}.postit-azul{background:#bde4ff}.postit-verde{background:#c8f2d0}.color-select-hidden{display:none}.color-icons{display:flex;gap:.45rem;margin-top:.5rem}.color-icon{width:1.75rem;height:1.75rem;border:2px solid transparent;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}.color-icon[aria-pressed="true"]{border-color:#1f2933;box-shadow:0 0 0 2px #fff,0 0 0 4px #1f2933}.color-amarillo{background:#fff3a6}.color-rosa{background:#ffc6d5}.color-azul{background:#bde4ff}.color-verde{background:#c8f2d0}
.note-date{display:block;color:#3b4752;font-size:.72rem;margin:.4rem 0}
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--bs-border-color); border-radius: 1rem; overflow: hidden; background: var(--bs-body-bg); box-shadow: 0 .25rem .75rem rgba(0,0,0,.05); }
main:has(.calendar-grid) > .btn-group { display: none; }
main:has(.calendar-grid) > .d-flex.justify-content-between > a.btn-primary { display: none; }
.calendar-weekday { padding: .7rem .1rem; text-align: center; font-size: .72rem; font-weight: 700; background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }
.calendar-day { min-height: 5.6rem; padding: .55rem .35rem; border-top: 1px solid var(--bs-border-color); border-right: 1px solid var(--bs-border-color); color: var(--bs-body-color); text-decoration: none; font-size: .85rem; transition: background .15s ease, transform .15s ease; }
.calendar-day:hover, .calendar-day:focus { background: rgba(var(--bs-primary-rgb), .1); color: var(--bs-primary); outline: none; box-shadow: inset 0 0 0 2px var(--bs-primary); }.calendar-day:nth-child(7n) { border-right: 0; }.calendar-outside { opacity: .35; }.calendar-current { background: rgba(var(--bs-primary-rgb), .14); }.calendar-current strong { display:inline-grid; place-items:center; width:1.8rem; height:1.8rem; border-radius:50%; background:var(--bs-primary); color:#fff; }.calendar-count { display: block; width: max-content; max-width: 100%; margin-top: .6rem; padding: .2rem .35rem; border-radius: 1rem; background: rgba(25,135,84,.15); color: #198754; font-size: .68rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.agenda-cita { border-left-color: #198754; }
@media (max-width: 575px) { .bottom-nav { width: 4.25rem; padding-left: .2rem; padding-right: .2rem; }.bottom-nav a, .bottom-nav span { padding: .55rem .05rem; font-size: .62rem; }.nav-toggle { left: .85rem; width: 2rem; height: 2rem; font-size: 1.1rem; } body { padding-left: 4.25rem; }.navbar .container { padding-left: 3.2rem; }.calendar-weekday { font-size: .62rem; }.calendar-day { min-height: 4.5rem; padding: .35rem .2rem; }.calendar-count { font-size: .57rem; padding: .15rem .2rem; }.calendar-arrow { width: 2.65rem; height: 2.65rem; padding: 0 !important; display: inline-grid; place-items: center; border-radius: 50%; font-size: 1.8rem; line-height: 1; }.calendar-today { width: 2.65rem; height: 2.65rem; padding: 0 !important; display: inline-grid; place-items: center; border-radius: 50%; font-size: .9rem; }.agenda-fab, main > .d-flex.justify-content-between > a.btn-primary { position: fixed; z-index: 1025; right: 1rem; bottom: 1rem; width: 3.5rem; height: 3.5rem; padding: 0; display: grid; place-items: center; border-radius: 50%; box-shadow: 0 .5rem 1rem rgba(0,0,0,.25); font-size: 0; line-height: 1; }.agenda-fab::after, main > .d-flex.justify-content-between > a.btn-primary::after { content: '+'; font-size: 2rem; } main:has(.calendar-grid) > .d-flex.justify-content-between.mb-3 a.btn-outline-secondary { width: 2.65rem; height: 2.65rem; padding: 0; display: inline-grid; place-items: center; border-radius: 50%; font-size: 0; } main:has(.calendar-grid) > .d-flex.justify-content-between.mb-3 a.btn-outline-secondary:nth-child(1)::after { content: '‹'; font-size: 1.8rem; } main:has(.calendar-grid) > .d-flex.justify-content-between.mb-3 a.btn-outline-secondary:nth-child(2)::after { content: '●'; font-size: .9rem; } main:has(.calendar-grid) > .d-flex.justify-content-between.mb-3 a.btn-outline-secondary:nth-child(3)::after { content: '›'; font-size: 1.8rem; } }
@media (min-width: 768px) { .bottom-nav { width: 8rem; } body { padding-left: 8rem; } body.nav-hidden { padding-left: 0; } }
